我有一個python腳本,由兩個類組成,其中我想調用另一個類的函數內的一個類的函數。結構看起來如下:如何在python腳本中調用B類中的A類函數?
class A():
def funct(arg1, arg2):
B.other(arg)
....
class B():
def other(arg):
....
所以,請幫助我如何在A類功能內調用B類功能?
我有一個python腳本,由兩個類組成,其中我想調用另一個類的函數內的一個類的函數。結構看起來如下:如何在python腳本中調用B類中的A類函數?
class A():
def funct(arg1, arg2):
B.other(arg)
....
class B():
def other(arg):
....
所以,請幫助我如何在A類功能內調用B類功能?
使用類方法:
class B(object):
@classmethod
def other(cls, arg1, arg2):
print "I am function class B"
class A(object):
def funct(self, arg1, arg2):
B.other(arg1, arg2)
A().funct(1,2)
===>I am function class B
使用靜態方法:
class B(object):
@staticmethod
def other(arg1, arg2):
print "I am function class B"
class A(object):
def funct(self, arg1, arg2):
B.other(arg1, arg2)
A().funct(1,2)
===>I am function class B
一些references關於靜態方法和類方法。一類
class B(object):
def other(self, arg1, arg2):
print "I am function class B"
class A(object):
def funct(self, arg1, arg2):
B().other(arg1, arg2)
A().funct(1,2)
===>I am function class B
你可以使用Python繼承裏面
實例化B中。
class B(object):
def other(self, arg=None):
print "I am function class B"
class A(B):
def funct(self, arg1, arg2):
self.other()
a_class_object = A()
a_class_object.other()
===>I am function class B
也不會原諒爲類方法添加self
參數。 您可以在關閉中找到關於繼承的更多信息。 Python的docs
試試這個
class A():
def funct(self, arg1, arg2):
B().other(arg1)
class B():
def other(self, arg):
print "inside other"
A().funct('arg1','arg2')
你可以做2種方式
obj = A()
,並調用使用參考變量obj(如obj.function()
)的方法。class B(A)
之後,你可以使用B類中的A類的所有方法定義B的方法作爲@classmethod:
class A(object):
def funct(self, arg1, arg2):
B.other(arg1)
class B(object):
@classmethod
def other(cls, arg1):
print "In B: " + arg1
A().funct("arg", "arg2")
你一定要實例化乙並聲明靜態的** other **方法。 PD:其中是** cls **參數? 你也可以看看這個:http://www.jesshamrick.com/2011/05/18/an-introduction-to-classes-and-inheritance-in-python/ – mryuso92
高度相關(也許重複)[staticmethod和classmethod在Python中有什麼區別?](http://stackoverflow.com/questions/136097/what-is-the-difference-between-staticmethod-and-classmethod-in-python)。你也可以檢查[初學者的Python classmethod和staticmethod?](http://stackoverflow.com/questions/12179271/python-classmethod-and-staticmethod-for-beginner) – FallenAngel