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