Sam*_*ett 5 python type-hinting python-3.x
使用 PEP 484 和 585 中指定的类型提示语法,有什么方法可以表明函数的参数应该是由函数修改的可变引用?
例如,C# 有ref
参数,那么在 Python 中,是否有任何等价物?例如
>>> def foo(spam: "Mutable[List[int]]"):
... spam.append(sum(spam))
...
>>> a = [1, 2, 3]
>>> foo(a)
>>> a
[1, 2, 3, 6]
Run Code Online (Sandbox Code Playgroud)
或者如果不是,我怎么能定义这样的类型而不导致检查逻辑认为它是一个特殊的Mutable
类而不是一个List[int]
?显然,这将用作开发人员更容易理解方法的工具,而不是用于从根本上更改程序的方法。
为了清楚起见,我知道,根据定义列表是可变的,但我不知道是否有一种方法来定义时,它会突变,例如
>>> def bar(sandwich: Mutable[List[str]], fridge: List[str]):
... sandwich.extend(random.sample(fridge, k=3))
Run Code Online (Sandbox Code Playgroud)
列表在 Python 中是可变的,因此Mutable
不需要显式的类引用:
In [3]: from typing import List
In [7]: def foo(spam:List[int]):
...: spam.append(sum(spam))
...: return spam
In [8]: a = [1,2,3]
In [9]: foo(a)
Out[9]: [1, 2, 3, 6]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
87 次 |
最近记录: |