选择要以编程方式访问的属性

2024-10-02 06:26:09 发布

您现在位置:Python中文网/ 问答频道 /正文

给出:

import configs

thingToLook = 'value'

channels = configs.value

我能做点像这样的事吗

channels = config[thingToLook]

相当于

channels = config.value 

什么?你知道吗

如果我这样做了

channels = configs[thingToLook]

我得到:

TypeError: 'module' object has no attribute '__getitem__'

我试图以编程方式选择要从configs获取的属性,以便通过字符串设置它。你知道吗


Tags: noimportconfigobjectvalue编程方式attribute
2条回答

config.valueconfig['value']不一样。它们调用实例的不同方法。你知道吗

config.valueconfig.__getattr__('value')相同。你知道吗

config['value']config.__getitem__('value')相同。你知道吗

有关更多信息,请参见:https://docs.python.org/2/reference/datamodel.html

与JavaScript不同,Python区分了项(括号访问)和属性(点访问)。用于访问一个的语法(通常)不用于访问另一个。你知道吗

可以使用^{}函数动态查找属性:

getattr(configs, thinkToLook)

如果找不到任何内容,可以选择设置默认值:

getattr(configs, thinkToLook, False)

相关问题 更多 >

    热门问题