我有一個創建另一個Python類的實例,我想知道,如果「創造」類可以訪問的「創造者」的成員沒有將它們明確地,或做這樣的事情:另一個類實例創建的類實例是否可以訪問創建者的成員?
class Creator(object):
def __init__(self, parameter):
self.parameter = parameter
self.created = Created(self)
class Created(object):
def __init__(self, creator):
self.creator = creator
self.parameter = self.creator.parameter
我想我想要做的是允許parameter
由兩個訪問,除了在實踐中會有多個參數,所以傳遞它們都會導致一長串參數。我現在的解決方案是使用Creator
作爲Created
的參數。有沒有一個更尷尬或更聰明的方式來做到這一點?也許把所有的參數放在字典中?
作爲一個側面說明,'類造物主()'是一箇舊式的類,而不是新的風格,你幾乎永遠都不想。 (在極少數情況下,當你這樣做時,你應該把它寫成'class Creator:'。)總是做'class Creator(object):'來創建一個新式的類。 – abarnert
尷尬的感覺暗示創建者/創建的引用可能不是解決您的問題的更好模式。更具體的例子可能有助於獲得更好的答案,例如,是否適用於遊戲? –
你真的需要造物主成爲一個班級嗎?我認爲在你的情況下,一個簡單的工廠函數將工作得很好。 –