[英]Passing self into a constructor in python
我最近正在研究一個小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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.