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()它时,它将打印“你好”。

于 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 回答