任何人都可以修改namedtuple或提供替代类,以便它适用于可变对象吗?
主要是为了可读性,我想要类似于namedtuple这样做:
from Camelot import namedgroup
Point = namedgroup('Point', ['x', 'y'])
p = Point(0, 0)
p.x = 10
>>> p
Point(x=10, y=0)
>>> p.x *= 10
Point(x=100, y=0)
Run Code Online (Sandbox Code Playgroud)
必须可以腌制生成的对象.并且根据命名元组的特征,当表示时,输出的排序必须与构造对象时参数列表的顺序相匹配.
我正在给Python typing模块一个镜头.
我知道指定List以下*的长度是有效的:
List[float, float, float] # List of 3 floats <-- NOTE: this is not valid Python
Run Code Online (Sandbox Code Playgroud)
是否有更长的名单的简写?如果我想将它设置为10个花车怎么办?
List[float * 10] # This doesn't work.
Run Code Online (Sandbox Code Playgroud)
如果这是可能的,任何想法,这将是方便的.
*注意:事实证明Sequence[]以这种方式向(及其子类)提供多个参数当前不是有效的Python.此外,目前不可能以这种方式Sequence使用typing模块指定长度.