Python - 像在字典中一样访问对象属性

问题描述 投票:0回答:4
>>> 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 object dictionary
4个回答
28
投票
getattr(my_object, my_str)

或者,如果您不确定该名称是否作为键存在,并且想要提供后备而不是抛出异常:

getattr(my_object, my_str, "Could not find anything")

有关 getattr 的更多信息。


3
投票

您可以通过定义一小组方法(主要是

getitemsetitem)来为类对象的 [] 运算符提供支持。请参阅文档中接下来的几个条目以了解其他一些要实现的内容,以获得全面支持。 


0
投票
>>> myobject.__dict__[my_str]
'stuff'

0
投票

一般来说,你不能采用

__dict__
方法。永远有效的是

getattr(myobject, my_str)

如果您想要类似字典的访问,只需定义一个带有重载索引运算符的类即可。

© www.soinside.com 2019 - 2024. All rights reserved.