這裏是什麼,我試圖繞過一個很簡單的例子:類__init__(不是實例__init__)
class Test(object):
some_dict = {Test: True}
的問題是,它仍然被定義,而我不能參考試驗
通常,我只是這樣做:
class Test(object):
some_dict = {}
def __init__(self):
if self.__class__.some_dict == {}:
self.__class__.some_dict = {Test: True}
但我從來沒有創建這個類的實例。這真的只是一個容器,以便容納一組相關的功能和數據(我有幾個這些類的,我繞過它們的引用,所以它是必要的測試是它自己的類)
所以我問題是,如何在定義時引用Test,或者在類定義後立即調用__init__
?如果可能,我希望self.some_dict = {Test: True}
保留在類定義中。這是我知道如何做到這一點,到目前爲止的唯一途徑:
class Test(object):
@classmethod
def class_init(cls):
cls.some_dict = {Test: True}
Test.class_init()
「問題在於,當它仍在被定義時,我無法引用測試」。所以?在定義期間,你需要什麼樣的參考**?標準答案是None:類定義是穩定的,一致的和不變的。 **行爲**可以改變。定義不應該改變。你想用這個「變化的定義」業務做什麼? – 2010-04-24 22:37:53
定義不變。我只需要對類的引用,並且爲了組織的目的,我更喜歡在定義類時設置該引用。 – Ponkadoodle 2010-04-24 22:44:17
我明白你想要做什麼,但我不明白你爲什麼試圖這樣做,以及你想要完成什麼。你能詳細說一下嗎?看起來更像是一個架構,然後是「我怎麼把蟒蛇變成......?」問題給我。 – Aea 2010-04-24 22:51:47