python中的函数注释

Python 3中的函数注释是一种为函数的参数和返回值提供类型提示的机制。这种注释不改变函数的行为,但可以帮助IDE进行类型检查、自动完成以及重构等。

自定义函数注释的基本语法如下:

def 函数名(参数1: 类型提示,参数2:类型提示, ...) -> 返回值类型:
    函数体
    return 返回值

以下是一些例子:

1.带多个参数和返回值类型提示的函数

def add(x:int,y:float) -> float:
    return x+y

2.使用类型别名

可以定义类型别名来简化复杂的类型提示:

from typing import List

Vector = List[float]

def scale(scalar: float, vector: Vector) -> Vector:
    return [scalar * num for num in vector]

这里,Vector 是一个类型别名,代表一个浮点数列表。函数 scale 接受一个浮点数和一个 Vector 类型的列表,返回一个新的 Vector

3.可选参数和默认值

def greet(name: str, greeting: str = 'Hello') -> str:
    return f'{greeting}, {name}'

4.不定长位置参数

def print_numbers(*numbers: int):
    for number in numbers:
        print(number)

*numbers 是一个不定长参数,所有的参数都会被当作整数处理。

5.不定长关键字参数

from typing import TypedDict

class UserInfo(TypedDict):
    name: str
    age: int
    location: str

def print_user_info(**kwargs: UserInfo) -> None:
    for key, value in kwargs.items():
        print(f"{key}: {value}")

# 使用示例
print_user_info(name="Alice", age=30, location="New York")

6.高级类型提示

Python的类型提示还支持更复杂的情况,比如联合类型、泛型等。

from typing import Union

def func(x: Union[int, str]) -> Union[int, str]:
    # 函数可以接受整数或字符串类型的参数,并且返回类型也是整数或字符串
    函数体
    return 返回值

在Pycharm、VSCode等一些编辑器中,当你将鼠标移动到非自定义的函数名上时,便可以看到该函数的注释,以下是一个具体实例:

 解读:

  1. label: str
    label 是一个必需的参数,类型为 str(字符串),表示图表标题的文本内容。

  2. fontdict: dict = ...
    fontdict 是一个可选的参数,默认值未明确给出(用 ... 表示)。它是一个字典,用于指定标题的字体属性,如字体大小、样式、颜色等。

  3. loc: Literal['center', 'left', 'right'] = ...
    loc 是一个可选的参数,默认值未明确给出。它使用了类型提示 Literal 来限制参数值只能是 ‘center’、‘left’ 或 ‘right’ 中的一个,表示标题的位置。

  4. pad: float = ...
    pad 是一个可选的参数,默认值未明确给出。它是一个浮点数,表示标题与图表顶部的距离。

  5. 表示之后的参数必须作为关键字参数传递,不能作为位置参数

  6. y: float = ...
    y 是一个可选的关键字参数,默认值未明确给出。它是一个浮点数,表示标题的垂直位置。

  7. **kwargs: Any
    **kwargs 是一个不定长的关键字参数,类型提示为 Any,表示可以接受任何额外的关键字参数。这些参数可能会被用于自定义标题的其他属性。

  8. -> Text
    这个函数返回一个 Text 对象,这通常是在绘图库(如 matplotlib)中表示文本的一个类。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

微生无瑕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值