簡體   English   中英

將自己傳遞給python中的構造函數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM