我在“gym”环境的上下文中修改某人的代码,遇到了使用点符号访问字典的情况。 下面的代码片段显示gym中的字典可以使用表示法,但是当我复制它时,它会抛出一个错误
import gym
env = gym.Env
env = make('connectx', debug=True)
config = env.configuration
print(config)
print(config.timeout)
dct = {'timeout': 5, 'columns': 7, 'rows': 6, 'inarow': 4, 'steps': 1000}
print(dct.timeout)
这将提供以下输出:
{'timeout': 5, 'columns': 7, 'rows': 6, 'inarow': 4, 'steps': 1000}
5
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-45-674d59d34c55> in <module>
6 print(config.timeout)
7 dct = {'timeout': 5, 'columns': 7, 'rows': 6, 'inarow': 4, 'steps': 1000}
----> 8 print(dct.timeout)
AttributeError: 'dict' object has no attribute 'timeout'
我正在使用Python3。有人能解释一下吗? 谢谢
与JavaScript对象不同,Python dict本机不支持点表示法
请尝试Dotsi、Addict或类似的库。下面是Dotsi的一个快速片段:
披露:我是多西的作者
在python中,不能使用
dict.key
访问词汇值,需要使用dict[key]
例如:
如果您真的想使用点表示法,您可以使用一个类(顺便说一句,您的
config
可能是一个类实例):相关问题 更多 >
编程相关推荐