考虑以下数据集:
{
'name': 'somecat',
'lives': [
{'number': 1, 'did': 'nothing'},
{'number': 2, 'did': 'saved the world'}
]
}
我要做的是使用attrs
来定义一个数据类,这样即使使用索引号也可以获得自动完成
import attr
@attr.s
class Cat(object):
name = attr.ib()
lives: list = [
{'number': int, 'did': str} # trying to get autocompletion here
]
c = Cat('somecat')
print(c)
c.lives[0].number # trying to get autocompletion here
上面的代码是无效的,但这就是我要完成的。你知道吗
我该怎么做呢?我知道metadata
,但那是不变的。如果这更有意义的话,我也愿意使用dataclasses
。你知道吗
诚然,我从来没有真正使用
attr
模块,而是为了对代码进行最小的更改。我认为在这里使用typing.List
也很有用。我个人会使用数据类,但这似乎也很有效只有数据类
但是对于嵌套字典,这些数据类可能很困难。就像这样
如果可以的话,我建议调查一下^{} 。你知道吗
谢谢
相关问题 更多 >
编程相关推荐