4

私はこのようなものを持っています:

class exampleClass(object):

    def doSomething(self,number):
        return number + 1

class exampleClass2(exampleClass):
    def callDefDoSomething(self):
        print exampleClass.doSomething(5)

exampleClass2.callDefDoSomething()

-

TypeError: unbound method callDefDoSomething() must be called
with exampleClass2 instance as first argument (got nothing instead)

私はPythonでオブジェクトについて学び始めましたが、これに対する解決策を見つけることができません:(

4

4 に答える 4

1

これを使用できます:

class exampleClass(object):
    def doSomething(self,number):
        return number + 1

class exampleClass2(exampleClass):
    def callDefDoSomething(self):
        print super(exampleClass2,self).doSomething(5)

example = exampleClass2()
example.callDefDoSomething()
于 2013-04-14T12:42:07.487 に答える
1

通常のクラス メソッドは、クラスではなくインスタンスに対してのみ呼び出すことができます。したがって、callDefDoSomething を呼び出したい場合は、最初に exampleClass2 をインスタンス化する必要があります。また、callDefDoSomething への呼び出し内で exampleClass をインスタンス化する必要があります。

class exampleClass(object):

    def doSomething(self,number):
        return number + 1

class exampleClass2(exampleClass):
    def callDefDoSomething(self):
        exampleClassInstance = exampleClass()
        print exampleClassInstance.doSomething(5)

exampleClass2Instance = exampleClass2()

exampleClass2Instance.callDefDoSomething()

クラスのメソッドを呼び出したい場合は、classmethods を試す必要があります。Python チュートリアルのクラスに関するドキュメントを確認してください。

于 2013-04-14T12:14:45.230 に答える