0

基本的な質問をお詫びしますが、構文または全体的な概念のいずれかに問題があります。私が抱えている問題は、下のクラスのメソッドを呼び出すときに、インタープリターが、発生するとは思わない自己引数の値を入力するように要求することです。私がやろうとしているのは、一度に複数のtkinterウィジェットを保持するオブジェクトを作成して、一度に1つではなく、グループで動的に加算または減算できるようにすることです。ここでの助けは大歓迎です、ありがとう!

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 に答える