簡體   English   中英

實例方法中的python靜態變量

[英]python static variable in instance method

這是我的代碼無法正常工作

class MyClass:
    special_items = {}
    def preload_items(self):
        special_items['id'] = "properties"

NameError:未定義全局名稱'special_items'

作品

class MyClass:
    special_items = {}
    def preload_items(self):
        MyClass.special_items['id'] = "properties"

是不是special_items是一個靜態成員,我可以在這個類的任何地方訪問?

python中沒有靜態成員這樣的東西。 你定義的是一個班級成員。 該成員存儲在類對象中,如您所示,它作為MyClass.special_items訪問。

看來你要做的就是初始化special_items. 為此, classmethod更合適(對self沒用):

@classmethod
def preload_items(cls):
        cls.special_items['id'] = "properties"

請注意,您也可以將其作為self.special_items訪問,但它仍然存儲在類對象中,即類的所有對象都訪問相同的值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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