的代碼是這樣的:如何通過Python中的字符串訪問類變量?
class Test:
a = 1
def __init__(self):
self.b=2
當我做的Test
一個例子,我可以訪問它的實例變量b
這樣的(使用字符串「B」):
test = Test()
a_string = "b"
print test.__dict__[a_string]
但不適用於a
,因爲self.__dict__
不包含名爲a
的密鑰。那麼如果我只有一個字符串a
,我怎樣才能訪問a
?
謝謝!
「self .__ dict__」不包含名爲「a」的鍵的原因是它在'self .__ class __.__ dict__'中。如果你真的想手動操作,你可以閱讀搜索順序中的屬性,並按照相同的順序檢查所有內容......但你真的不想手動執行操作。 (你必須處理插槽,屬性,經典與新風格的類,自定義__dict__,自定義描述符以及各種其他有趣的東西,但與解決問題無關。 ) – abarnert
PS,因爲這很明顯是Python 2.x,所以在這裏你可能想要'class Test(object)',除非你有特定的原因來避免新風格的類。即使是簡單的小測試程序,也值得養成這種習慣。 (特別是對於那些明確依賴於兩類不同類型的測試程序......) – abarnert