以编程方式/动态地将参数连接到对象以访问数据
Programmatically / Dynamically concatenate parameters to an object to access data
是否可以这样做?
class child:
def __init__(self):
self.figure = "Square"
self.color = "Green"
bot = child()
bot_parameters = ['color', 'figure']
[print(bot.i) for i in bot_parameters] #Attribute Error from the print function.
我知道我可以使用 __dict__
访问参数值,但我想知道是否可以将参数连接到 programmatically/dynamically 获取值。
您可以同时使用 built-in vars()
and getattr()
函数并动态检索 class 实例的属性,如下所示:
class Child:
def __init__(self):
self.figure = "Square"
self.color = "Green"
bot = Child()
print([getattr(bot, attrname) for attrname in vars(bot)]) # -> ['Square', 'Green']
您 可以 也只是硬编码 ['figure', 'color']
,但这不是“动态”的,并且必须在 class' 属性更改时更新.
是否可以这样做?
class child:
def __init__(self):
self.figure = "Square"
self.color = "Green"
bot = child()
bot_parameters = ['color', 'figure']
[print(bot.i) for i in bot_parameters] #Attribute Error from the print function.
我知道我可以使用 __dict__
访问参数值,但我想知道是否可以将参数连接到 programmatically/dynamically 获取值。
您可以同时使用 built-in vars()
and getattr()
函数并动态检索 class 实例的属性,如下所示:
class Child:
def __init__(self):
self.figure = "Square"
self.color = "Green"
bot = Child()
print([getattr(bot, attrname) for attrname in vars(bot)]) # -> ['Square', 'Green']
您 可以 也只是硬编码 ['figure', 'color']
,但这不是“动态”的,并且必须在 class' 属性更改时更新.