如何獲得哪些變量在類中定義的列表,而不導入其中的類?如何知道在一個類中定義了哪些變量
vars(obj)
返回所有在瓦爾類,不包括不需要的bliltin瓦爾,像__doc__
,__file__
,__name__
,__package__
,os
,pdb
等
如何獲得哪些變量在類中定義的列表,而不導入其中的類?如何知道在一個類中定義了哪些變量
vars(obj)
返回所有在瓦爾類,不包括不需要的bliltin瓦爾,像__doc__
,__file__
,__name__
,__package__
,os
,pdb
等
您有幾種方式來獲得無論是class
變量或實例變量。
class foo:
baz = 51
def __init__(self):
self.bar = 42
>>> vars(foo)
{'__doc__': None,
'__init__': <function __init__ at 0x02A35B70>,
'__module__': '__main__',
'baz': 51}
>>> {k:v for k,v in vars(foo).items() if k[:2]!="__" and k[-2:]!="__"}
{'baz': 51}
>>> obj = foo()
>>> vars(obj)
{'bar': 42}
望着醫生,我不知道是否瓦爾是你想要的使用
沒有參數,vars()就像locals()一樣行事。請注意,本地字典僅用於讀取,因爲本地字典的更新被忽略。
I see this question on SO,這看起來像你想要的。
讓我知道,如果我錯了
你能張貼也許一個小例子:利用強制執行內置功能的編碼約定由雙下劃線字符(
'__builtin__'
)包圍? – jamylak你是指在一個類或模塊中定義的變量嗎?我期望在'vars()'中看到類似'__file__'的變量作爲模塊,但不能用於類。另外,一個類導入模塊是相當不尋常的,但對於一個模塊來說這是很常見的。 (在Python中,與Java不同,您通常不會將每個類放在其自己的模塊中。) –
是的,我混淆了模塊和類。 – iTayb