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