在Python中导入同一文件中的类

时间:2013-07-03 10:20:01

标签: python import

我是python的新手,我有一个包含多个类的文件。在类“class1”中的方法中,我想使用另一个类“class2”中的方法。如何进行导入以及如何从class1调用该方法?我尝试过几种不同的东西,但似乎没什么用。

3 个答案:

答案 0 :(得分:4)

您无需导入它们,因为它们已经在同一个文件中。
相反,做这样的事情:

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()时,它会打印'你好'。

答案 1 :(得分:2)

假设您的所有类的文件名为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'

答案 2 :(得分:1)

如果所有类都在同一个文件中,则无需导入它们。它们已经在模块范围内。这是一个例子:

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()