python - 不明白这两行代码的区别

标签 python python-3.x

我用两种不同的方式编写了这段代码。只有第二个有效,但我不明白为什么。

1:

buttons = Frame(calculator, bg="green", width=200, height=400).grid()
buttons.columnconfigure(0)

2:

buttons = Frame(calculator, bg="green", width=200, height=400)
buttons.grid()
buttons.columnconfigure(0)

最佳答案

正如我在评论中所说,我希望这段小代码能让您理解问题所在。

class Person:
    def __init__(self, name):
        self.name = name

    def greet(self):
        pass

Joe = Person("Joe")
Joe.greet()

Pet = Person("Pet").greet()

print(Joe)
print(Pet)

输出:

<__main__.Person object at 0x7f1020983080>
None

您遇到的问题是 Frame 构造函数返回类型为 Frame 的对象,而 grid 方法不返回任何内容。这就是您出现 NoneType 错误的原因。

关于python - 不明白这两行代码的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47772628/

相关文章:

python - 无法使用lxml获取连接到特定标签的html元素

python - 在python中的numpy数组中查找第一个有条件的元素的索引

python - 模拟抛硬币实验 - RealPython

python - 在Python中添加两个不同大小的图像或填充白色像素以使其更大

python - python函数如何调用并且不等待它完成处理,而该函数必须被调用一次。因此,线程必须停止

python - 我可以从另一个字节对象中获取长度为 1 的字节对象,而不进行切片吗?

python - 将以下 xml 元素转换为 pandas 数据框时出现问题吗?

python - 使用 pathlib 创建符号链接(symbolic link)

python - python 中的唯一和替换

python - Tkinter 包布局 : Elastic band analogy