我是 python 新手,我有一个包含几个类的文件。在“class1”类的一个方法中,我想使用另一个“class2”类的方法。如何进行导入以及如何从 class1 调用该方法?我尝试了几种不同的方法,但似乎没有任何效果。
问问题
27542 次
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 回答