Ala*_*one 4 python dictionary notation
我正在“健身房”环境的上下文中修改某人的代码,并发现使用点符号来访问字典。下面的代码片段显示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)
Run Code Online (Sandbox Code Playgroud)
这提供了以下输出:
{'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'
Run Code Online (Sandbox Code Playgroud)
我正在使用 Python 3。有人可以解释一下吗?谢谢
与 JavaScript 对象不同,Python 字典本身不支持点表示法。
尝试Dotsi、Addict或类似的库。以下是 Dotsi 实际运行的快速片段:
>>> import dotsi
>>>
>>> d = dotsi.Dict({"foo": {"bar": "baz"}}) # Basic
>>> d.foo.bar
'baz'
>>> d.users = [{"id": 0, "name": "Alice"}] # In list
>>> d.users[0].name
'Alice'
>>>
Run Code Online (Sandbox Code Playgroud)
披露:我是 Dotsi 的作者。