有没有办法获得在同一个类(python)中实例化类的对象?

时间:2017-06-22 19:21:06

标签: python python-3.x

我想获取实例化所述类的对象并将其传递给另一个类。

说我的代码看起来像这样

class BestFriends():

class Friend():
    def __init__(self):
        bff = BestFriends()

def main():
    mainobj = Friend()

我想做的是这样的事情:

class BestFriends():
     def __init__(self, friend_obj):
        pass

class Friend():
    def __init__(self, selfobjfriends):
        bff = BestFriends(selfobjfriends)

def main():
    # Obviously won't work
    mainobj = Friend(mainobj)

所以我的问题是如何获取在同一个类中实例化一个类的对象?一旦我获得它,我相信我可以很容易地将它传递给我需要的另一个班级。

1 个答案:

答案 0 :(得分:1)

如果您真正要做的是创建两个对象,每个对象都引用另一个,那么有几种可能的解决方案,但它们很可能取决于您尝试执行此操作的真实世界类。

构造两个对象(每个对象只引用一个实例)的一种非常简单的方法是:

class Bar:
    def __init__(self, foo):
        self.foo = foo

class Foo:
    def __init__(self):
        self.bar = Bar(self)

def main():
    foo = Foo()
    print(foo, "has a Bar named", foo.bar)
    bar = foo.bar
    print(bar, "has a Foo named", bar.foo)

如果这不符合您的要求,可能有助于描述您尝试解决的原始问题,然后我们可以提供更具体的答案。