python class 来自另一个 class 实例的实例方法调用
python class instance method call from another class instance
我有一个关于 python classes 的快速问题。
以下是设置:
我有一个 class 作为 "mastermind" class,其中包含其他 class 的各种实例。现在这些 classes 需要调用另一个 class 的方法,但我不知道该怎么做。例如:
class mastermind(object):
def __init__(self):
self.hand = hand()
def iNeedToCallThisMethod(self, funzies):
print funzies
class hand(object):
def __init(self):
pass #here should be a call to the mastermind instance's method
example = mastermind()
希望大家能帮帮我,我脑子冒烟了!非常感谢!
class hand(object):
def __init(self, other_class):
#here should be a call to the mastermind instance's method
other_class.iNeedToCallThisMethod()
m_m = mastermind()
example = hand(m_m) # passes mastermind to new instance of hand
我会像上面那样传递对象
如果要调用mastermind的方法,需要有引用
例如
class mastermind(object):
def __init__(self):
self.hand = hand(self)
def iNeedToCallThisMethod(self, funzies):
print funzies
class hand(object):
def __init__(self, mastermind)
mastermind.iNeedToCallThisMethod('funzies')
如果您需要从 hand
的 __init__
调用 iNeedToCallThisMethod
,您应该将方法放在 class.
中
但是,您可以使用 classmethod
:
来实现您想做的事情
class mastermind(object):
def __init__(self):
self.hand = hand()
@classmethod
def iNeedToCallThisMethod(cls, funzies):
print funzies
class hand(object):
def __init__(self):
mastermind.iNeedToCallThisMethod('funzies')
example = mastermind()
两个对象都需要相互引用,请尝试将实例传递给构造函数。
class Mastermind(object):
def __init__(self):
self.hand = Hand(self)
def test_funct(self, arg):
print arg
class Hand(object):
def __init(self, mastermind):
self.mastermind = mastermind
self.mastermind.test_funct()
我有一个关于 python classes 的快速问题。 以下是设置: 我有一个 class 作为 "mastermind" class,其中包含其他 class 的各种实例。现在这些 classes 需要调用另一个 class 的方法,但我不知道该怎么做。例如:
class mastermind(object):
def __init__(self):
self.hand = hand()
def iNeedToCallThisMethod(self, funzies):
print funzies
class hand(object):
def __init(self):
pass #here should be a call to the mastermind instance's method
example = mastermind()
希望大家能帮帮我,我脑子冒烟了!非常感谢!
class hand(object):
def __init(self, other_class):
#here should be a call to the mastermind instance's method
other_class.iNeedToCallThisMethod()
m_m = mastermind()
example = hand(m_m) # passes mastermind to new instance of hand
我会像上面那样传递对象
如果要调用mastermind的方法,需要有引用
例如
class mastermind(object):
def __init__(self):
self.hand = hand(self)
def iNeedToCallThisMethod(self, funzies):
print funzies
class hand(object):
def __init__(self, mastermind)
mastermind.iNeedToCallThisMethod('funzies')
如果您需要从 hand
的 __init__
调用 iNeedToCallThisMethod
,您应该将方法放在 class.
但是,您可以使用 classmethod
:
class mastermind(object):
def __init__(self):
self.hand = hand()
@classmethod
def iNeedToCallThisMethod(cls, funzies):
print funzies
class hand(object):
def __init__(self):
mastermind.iNeedToCallThisMethod('funzies')
example = mastermind()
两个对象都需要相互引用,请尝试将实例传递给构造函数。
class Mastermind(object):
def __init__(self):
self.hand = Hand(self)
def test_funct(self, arg):
print arg
class Hand(object):
def __init(self, mastermind):
self.mastermind = mastermind
self.mastermind.test_funct()