假设:
import configs
thingToLook = 'value'
channels = configs.value
我可以做点什么吗
channels = config[thingToLook]
相当于
channels = config.value
如果我这样做
channels = configs[thingToLook]
我明白了:
TypeError: 'module' object has no attribute '__getitem__'
我正在尝试以编程方式选择要从configs
获取的属性,以便我可以通过字符串进行设置。
答案 0 :(得分:2)
与JavaScript不同,Python区分项(括号访问)和属性(点访问)。用于访问其中一个语法的语法(通常)不能用于访问另一个语法。
您可以使用getattr
功能动态查找属性:
getattr(configs, thinkToLook)
并且如果找不到任何内容,可以选择设置默认值:
getattr(configs, thinkToLook, False)
答案 1 :(得分:2)
config.value
和config['value']
不一样。他们调用实例的不同方法。
config.value
与config.__getattr__('value')
相同。
config['value']
与config.__getitem__('value')
相同。
有关详细信息,请查看以下内容:https://docs.python.org/2/reference/datamodel.html