Python中类似Lua的dict

Python中类似Lua的dict,python,dictionary,Python,Dictionary,在Lua中,您可以寻址字典类属性的键: d = {a = 1, b = 1} d['a'] == d.a -- this returns true Python中有类似的东西吗?我注意到sklearn bunch对象具有类似的属性。不,使用键访问dict的唯一有效方法是d['a']或d.get('a') 如果该键不在dict中,前者可能会引发KeyError,而后者则接受第二个可选参数,如果找不到该键,它将返回该参数。否,使用键访问dict的唯一有效方法是d['a']或d.get('a') 如

在Lua中,您可以寻址字典类属性的键:

d = {a = 1, b = 1}
d['a'] == d.a -- this returns true

Python中有类似的东西吗?我注意到sklearn bunch对象具有类似的属性。

不,使用键访问
dict
的唯一有效方法是
d['a']
d.get('a')


如果该键不在
dict
中,前者可能会引发
KeyError
,而后者则接受第二个可选参数,如果找不到该键,它将返回该参数。

否,使用键访问
dict
的唯一有效方法是
d['a']
d.get('a')


如果该键不在
dict
中,前者可能会引发一个
KeyError
,而后者则接受第二个可选参数,如果找不到该键,它将返回该参数。

您可以创建一个类,并使用setattr以这种方式访问属性,尽管为了方便起见,这似乎有点过分。您也可以对任何旧对象执行此操作,但我不建议您这样做。

您可以创建一个类并使用setattr以这种方式访问属性,尽管为了方便起见,这似乎有些过分。您也可以使用任何旧对象,但我不推荐使用它。

我想,Lua使用
d.a
语法糖
d['a']
的原因之一是Lua以其独特的OOP风格使用
t:func()
。Python的情况并非如此。我想,Lua使用
d.a
语法糖
d['a']
的原因之一是Lua以其独特的OOP风格使用
t:func()
。Python的情况并非如此。