Python 我不知道';我不明白这两行代码之间的区别
我用两种不同的方式编写了这段代码。只有第二个有效,但我不明白为什么 1: 2:Python 我不知道';我不明白这两行代码之间的区别,python,python-3.x,Python,Python 3.x,我用两种不同的方式编写了这段代码。只有第二个有效,但我不明白为什么 1: 2: 正如我在评论中所说的,我希望这个小代码能让您理解这个问题 class Person: def __init__(self, name): self.name = name def greet(self): pass Joe = Person("Joe") Joe.greet() Pet = Person("Pet").greet() print(Joe) pri
正如我在评论中所说的,我希望这个小代码能让您理解这个问题
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
错误。正如我在评论中所说的,我希望这段小代码能让您了解问题所在
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
错误。这是:
buttons = Frame(calculator, bg="green", width=200, height=400).grid()
帧
对象.grid()
.grid()
的结果绑定到名称按钮
帧
对象buttons = Frame(calculator, bg="green", width=200, height=400)
buttons.grid()
Frame()
对象并将其绑定到名称按钮
Frame()
对象上的.grid()
,并放弃此调用的结果按钮
是返回的Frame().grid()
对象(实际上似乎是无
),在第二个中,按钮
是Frame()
对象
如果要分解第一条语句,则需要一个中间变量(而不是按钮
)来引用Frame()
对象,并对该变量调用grid()
:
frame = Frame(calculator, bg="green", width=200, height=400)
buttons = frame.grid()
这:
帧
对象.grid()
.grid()
的结果绑定到名称按钮
帧
对象buttons = Frame(calculator, bg="green", width=200, height=400)
buttons.grid()
Frame()
对象并将其绑定到名称按钮
Frame()
对象上的.grid()
,并放弃此调用的结果按钮
是返回的Frame().grid()
对象(实际上似乎是无
),在第二个中,按钮
是Frame()
对象
如果要分解第一条语句,则需要一个中间变量(而不是按钮
)来引用Frame()
对象,并对该变量调用grid()
:
frame = Frame(calculator, bg="green", width=200, height=400)
buttons = frame.grid()
是一样的!,你也能做到
buttons = Frame(calculator, bg="green", width=200, height=400).grid().columnconfigure(0)
每行可以使用多种方法都是一样的!,你也能做到
buttons = Frame(calculator, bg="green", width=200, height=400).grid().columnconfigure(0)
每行可以使用多个方法,因为必须首先基于类框架创建对象,然后在该对象上运行方法grid(),而不是在类框架上?顺便说一下,我不知道你的代码应该做什么,只是猜测而已。您的错误消息是什么?'NoneType'对象没有属性'columnconfigure'@KatiaPunter非常准确我相信可能是因为.grid()不返回任何值这里的问题是第一个代码段上的
按钮是grid
函数的返回,而在第二种情况下,Frame
构造函数返回的是Frame
对象。顺便说一句,如果grid
将返回self
,那么您可以这样做。因为您必须首先基于类框架创建一个对象,然后在该对象上运行方法grid(),而不是在类框架上?顺便说一下,我不知道你的代码应该做什么,只是猜测而已。您的错误消息是什么?'NoneType'对象没有属性'columnconfigure'@KatiaPunter非常准确我相信可能是因为.grid()不返回任何值这里的问题是第一个代码段上的按钮是grid
函数的返回,而在第二种情况下,Frame
构造函数返回的是Frame
对象。顺便说一句,如果grid
将返回self
,那么您将被允许这样做。是的,我得到了!好的,我明白了!Thansk a lotbuttons=Frame(calculator,bg=“green”,width=200,height=400).grid().columnconfigure(0)错误:“非类型”对象没有属性“columnconfigure”我不知道我为什么要对此进行投票。。。抱歉,这是错误的,它的作用与第一个代码片段相同,在任何grid()
中调用columnconfigure()
都会返回恰好是None
。buttons=Frame(calculator,bg=“green”,width=200,height=400)。grid()。columnconfigure(0)错误:“非类型”对象没有属性“columnconfigure”我不知道我为什么要对此进行投票。。。很抱歉,这是错误的,它与第一个代码片段的操作相同,在grid()
中调用columnconfigure()
,返回的值恰好是None
。