函数之间的过程变量

时间:2014-12-30 12:46:02

标签: function variables python-3.x tkinter

当我试图获得变量的值时,我得到一个错误:

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

1 个答案:

答案 0 :(得分:1)

目前,您的createWidgets方法未返回任何内容,因此self.createWidgets()的结果为NoneNone个对象没有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()