除了:
def foobar(a: int, b: int, c: int, d: str): ...
也许有类似:
def foobar([a, b, c]: int, d: str): ...
显然是概念性的,但可以减少重复类型提示的方法之外,还有另一种方法可以输入相同类型的提示参数
Python 中没有像建议的那样直接将多个参数分组到单个类型提示中的方法。但是,可以使用以下方法来提高代码的可读性和效率:
1. *args 和类型提示:
如果有多个相同类型的参数, args 是一个不错的选择。可以对 args 元组使用类型提示:
```python from typing import List
def foobar(*args: int, d: str): for arg in args: print(arg + 1) print(d) ``` 这允许传递任意数量的整数作为参数。
2. 使用类型别名:
如果的参数列表很长,并且想要提高可读性,可以为重复的类型创建类型别名:
```python from typing import List
IntList = List[int]
def foobar(a: IntList, d: str): # ... ``` 这并不能减少代码量,但可以使的代码更易于理解。
3. 数据类 (对于更复杂的情况):
如果有许多具有相同类型的参数,或者希望将这些参数视为一个组,则可以使用数据类:
```python from dataclasses import dataclass
@dataclass class Numbers: a: int b: int c: int
def foobar(numbers: Numbers, d: str):
# ...
``
这使可以将相关值分组在一起,并通过
numbers.a
、
numbers.b` 等方式访问它们。
需要记住的是: 虽然 Python 没有提供直接的方法来实现所描述的语法,但上述方法可以帮助实现类似的结果,并提高代码的可读性和可维护性。选择最适合特定情况的方法。
标签:python,python-typing From: 59687854