我想注解str
和int
的list
,例如:
state = ['mystring', 4]
我不能使用元组,因为我必须在不改变状态引用的情况下改变整数(它被传递给函数,函数也必须修改它)。* 注意这是典型的元组情况,因为int
在python中是不可变的,...*
def myfunc(state: ?) -> bool:
...
state[1] += 1
...
return success
最好的注解方法是什么?我试过了
state: list[str, int]
(类似于元组),编译良好,但mypy
抛出异常,list
只需要一个参数。
state: list[str|int]
但这是针对不同用例的“不同类型”。
1条答案
按热度按时间5f0d552i1#
根据@MisterMiyagi-s的评论,答案是,我们不应该仅仅因为需要修改值就使用
list
作为tuple
的替代,List应该是相同类型(或更多类型)的对象序列。适当的解决办法可能是: