代码之家  ›  专栏  ›  技术社区  ›  Falmarri

在python中将self传递给构造函数

  •  10
  • Falmarri  · 技术社区  · 14 年前

    我最近在做一个小python项目,遇到了一个我想通过的情况 self 进入另一个对象的构造函数。我不知道为什么,但我得查一下这在python中是否合法。我在C++和java中已经做过很多次了,但是我不记得曾经用Python来做这个。

    正在传递对 自己 蟒蛇

    2 回复  |  直到 14 年前
        1
  •  16
  •   Nick Craig-Wood    14 年前

    是的,这是合法的,这是蟒蛇。

    当您有一个对象和一个容器对象,其中包含的对象需要知道它们的父对象时,我发现自己使用了这个模式。

        2
  •  4
  •   Mike DeSimone    14 年前

    像参数一样传递。当然,不会叫它 self 在另一个初始值设定项中。。。

    class A:
        def __init__(self, num, target):
            self.num = num
            self.target = target
    
    class B:
        def __init__(self, num):
            self.a = A(num, self)
    
    a = A(1)
    b = B(2)
    print b.a.num # prints 2