6

私はpythonが初めてで、いくつかのクラスを含むファイルがあります。クラス「class1」のメソッドで、別のクラス「class2」のメソッドを使用したい。インポートの方法と、class1 からメソッドを呼び出す方法を教えてください。私はいくつかの異なることを試しましたが、何もうまくいかないようです。

4

3 に答える 3

6

それらは既に同じファイルにあるため、インポートする必要はありません。
代わりに、次のようにします。

class1 = Class1() #assigns class1 to your first class

Class1次に、次のようにメソッドを呼び出します。

Class2():
    def method2(self):
        class1.method1() #call your method from class2 

基本的Class2()に、インスタンスを取得してポイントしclass2、実行してそのクラスのメソッドを呼び出していclass2.method2()ます。現在のクラスから関数を呼び出すのと同じですが、その前にインスタンス名を使用します。

次に例を示します。

class Class1():

    def method1(self):
        print "hello"

class Class2():
    def method2(self)
        class1 = Class1()
        class1.method1()

次に、呼び出すClass2()と「hello」が出力されます。

于 2013-07-03T10:23:46.057 に答える
3

すべてのクラスを含むファイルがmyclass.py次のように呼び出されるとします。

class Class2(object):
    def foo(self):
        return 'cabbage'

class Class1(Class2):
    def bar(self):
        return self.foo()

メイン スクリプトでは、通常どおりモジュールをインポートできます。

import myclass

これで、次のインスタンスを作成できますclass1

myinstance = myclass.Class1()

次に、関数を直接呼び出すことができます。

myinstance.bar()
# Returns 'cabbage'
于 2013-07-03T10:23:57.900 に答える
2

すべてのクラスが同じファイルにある場合は、それらをインポートする必要はありません。それらはすでにモジュールスコープにあります。次に例を示します。

class A():
    def print_one(self):
        print "one"

class B():
    def print_two_and_one(self):
        print "two"
        A().print_one()

B().print_two_and_one()
于 2013-07-03T10:24:31.480 に答える