python tkinter中Frame的位置为什么不一样?

# 第一种
f1 = tk.Frame(root)
f1.pack()
f2 = tk.Frame(root)
f2.pack()
# 第二种
f1 = tk.Frame(root).pack()
f2 = tk.Frame(root).pack()

求问为什么两种情况Frame排列位置是不一样的?
第一种是上下排列
第二中是左右排列

应该用第一种
f1 = tk.Frame(root)
f1.pack()
这样f1的值才是Frame()方法返回的Frame窗体对象。
可以通过f1把其他元素添加到Frame窗体中。
tk.Label(f1, text="xxxxxxx")

而第二种
f1 = tk.Frame(root).pack()
是Frame()方法创建Frame窗体对象后直接调用.pack()
f1的值是 .pack()方法的返回值,但.pack()方法没有返回值。会默认返回None
f1的值就成了None,也就不能通过f1把其他元素添加到Frame窗体中了。
tk.Label(f1, text="xxxxxxx")
就等于是
tk.Label(None, text="xxxxxxx")

怎么运行都是一样的啊,Frame里面没有放任何东西,没有大小