当我试图获得变量的值时,我得到一个错误:
AttributeError: 'NoneType' object has no attribute 'name'
这是代码:
class whatever(x):
def get_inpt(self):
print (self.createWidgets().name.get())
def createWidgets(self):
name = Entry(self).grid()
我希望createWidgets
功能因为整洁而保持get_inpt
。
问:如何在函数之间处理name
值?
使用Python-3.4.2
答案 0 :(得分:1)
目前,您的createWidgets
方法未返回任何内容,因此self.createWidgets()
的结果为None
。 None
个对象没有name
属性,因此您收到错误。
将条目分配给self
的属性,例如self.name
。此外,您永远不应该在同一行上分配和grid
- 然后变量将不包含小部件,它将包含grid
的返回值,即None
。
class whatever(x):
def __init__(self):
self.createWidgets()
def get_inpt(self):
print (self.name.get())
def createWidgets(self):
self.name = Entry(self)
self.name.grid()