0

我为这个基本问题道歉,但我在语法或我认为的整体概念方面遇到了一些问题。我遇到的问题是,当我在下面的类中调用该方法时,解释器希望我为 self 参数输入一个我认为不应该发生的值。我想要做的是创建一个对象来一次保存多个 tkinter 小部件,这样我就可以动态地分组添加或减去它们,而不是一次一个。非常感谢这里的任何帮助,谢谢!

class User(object):

    #Input a UI row number and this will generate a corresponding row of widgets
    def generateLine(self, rowNumber):
        self.NameVar = StringVar()
        self.ReasonVar = StringVar()
        #ExcusedVar

        self.Name_Cbox = ec.AutocompleteCombobox(content, textvariable = self.NameVar)
        self.Name_Cbox.grid(row = rowNumber, column = 0)

        self.Reason_Cbox = ec.AutocompleteCombobox(content, textvariable = self.ReasonVar)
        self.Reason_Cbox.grid(row = rowNumber, column = 1)
4

1 回答 1

3

确保您有一个类的实例User来调用该方法:

user = User()
user.generateLine(0)

self仅在方法已绑定到实例时提供。

如果你直接在类上调用方法,你会得到一个异常:

>>> class User(object):
...     def generateLine(self, row):
...         print row
... 
>>> User.generateLine(0)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unbound method generateLine() must be called with User instance as first argument (got int instance instead)
>>> User().generateLine(0)
0
于 2012-09-11T10:19:28.363 回答