>>> my_object.name = 'stuff'
>>> my_str = 'name'
>>> my_object[my_str] # won't work because it's not a dictionary :)
我如何可以訪問的my_object
上my_str
定義的字段?的Python - 訪問對象屬性在字典
>>> my_object.name = 'stuff'
>>> my_str = 'name'
>>> my_object[my_str] # won't work because it's not a dictionary :)
我如何可以訪問的my_object
上my_str
定義的字段?的Python - 訪問對象屬性在字典
getattr(my_object, my_str)
針對'myobject .__ dict __ [my_str]'的優勢是什麼?更好的性能 ? – 2012-01-27 15:28:20
我可以回到標準的「這是更Pythonic」的答案嗎?另外,利用私人__變量也會帶來一系列風險。你想要做的是getattr和setattr的用途。 – Tom 2012-01-27 16:07:15
好的,謝謝你的信息 – 2012-01-27 16:46:31
>>> myobject.__dict__[my_str]
'stuff'
請注意,這打破了屬性,'__slots__'和'__getattr __/__ getattribute __/__ setattr__'重載 - 可能還有一些其他的東西。 – delnan 2012-01-27 15:18:31
好的,謝謝你的信息。你認爲getattr(my_object,my_str)對性能更好嗎? – 2012-01-27 15:51:33
性能是您最不關心的問題。如果是這樣,您可以在C中重寫該部分(即整個循環,以避免多種跨語言調用),但在考慮這種優化之前,您應該有一個不可接受的放緩的可靠證明。 – delnan 2012-01-27 15:56:47
你不能做__dict__
-approach一般。什麼會一直工作
getattr(myobject, my_str)
如果你想類似字典的訪問,只是定義與重載索引運算符的類。
btw,這是完全有效的javascript – watashiSHUN 2018-01-14 04:04:36