我最近在做一个小 Python 项目,遇到了一个我想传入self
另一个对象的构造函数的情况。我不知道为什么,但我必须查一下这在 python 中是否合法。我在 C++ 和 Java 中做过很多次,但我不记得曾经用 python 做过。
传递对self
新对象的引用是否不被视为pythonic?我认为我没有看到任何 python 程序明确地传递自我引用。直到现在我才碰巧不需要它吗?还是我在与蟒蛇风格作斗争?
是的,它是合法的,是的,它是 Pythonic。
当你有一个对象和一个容器对象时,我发现自己使用这种模式,其中包含的对象需要知道它们的父对象。
只需像参数一样传递它。当然,它不会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