>>> my_object.name = 'stuff'
>>> my_str = 'name'
>>> my_object[my_str] # won't work because it's not a dictionary :)
如何访问
my_object
上定义的 my_str
字段?
getattr(my_object, my_str)
或者,如果您不确定该名称是否作为键存在,并且想要提供后备而不是抛出异常:
getattr(my_object, my_str, "Could not find anything")
>>> myobject.__dict__[my_str]
'stuff'
一般来说,你不能采用
__dict__
方法。永远有效的是
getattr(myobject, my_str)
如果您想要类似字典的访问,只需定义一个带有重载索引运算符的类即可。