Python函数参数和注解的使用

下面是Python函数参数和注解的使用攻略:

函数参数类型

位置参数

位置参数类似于命令行参数,定义函数时需要指定参数的顺序和类型。

def add(x, y):
    return x + y

add(1, 2) # 输出3

默认参数

默认参数在定义函数时就已经确定了默认值,在函数调用时可以不传入对应的参数值。如果传参,则会覆盖默认值。

def greeting(name='Python'):
    print(f'Hello, {name}!')

greeting() # 输出Hello, Python!
greeting('World') # 输出Hello, World!

可变参数

可变参数可以接收任意数量的位置参数,使用*来定义。

def sum(*args):
    total = 0
    for arg in args:
        total += arg
    return total

sum(1, 2, 3, 4, 5) # 输出15

关键字参数

关键字参数可以接收任意数量的关键字参数,使用**来定义。

def profile(name, age, **kwargs):
    print(f'{name} is {age} years old')
    for key, value in kwargs.items():
        print(f'{key}: {value}')

profile('Tom', 30, occupation='developer', hobby='reading')

# 输出:
# Tom is 30 years old
# occupation: developer
# hobby: reading

函数注解

Python的函数注解是添加在函数参数后面的元数据,主要用于描述函数参数以及返回值的类型和含义。Python解释器会将注解作为函数属性保存下来,可以通过函数属性获得注解信息。

参数注解

参数注解用于为函数的参数添加注释,格式为参数: 注释,多个参数注释用逗号分隔。

def greeting(name: str, age: int) -> str:
    return f'{name} is {age} years old.'

print(greeting('Tom', 20)) # 输出Tom is 20 years old.
print(greeting.__annotations__) # 输出{'name': <class 'str'>, 'age': <class 'int'>, 'return': <class 'str'>}

返回值注解

返回值注解用于为函数的返回值添加注释,格式为-> 注释

def area(radius: float) -> float:
    """
    计算圆的面积
    :param radius: 圆的半径
    :return: 圆的面积
    """
    return 3.14 * radius ** 2

print(area(2)) # 输出12.56
print(area.__annotations__) # 输出{'radius': <class 'float'>, 'return': <class 'float'>}

示例

下面的示例结合了函数参数和注解的使用。

def user_profile(name: str, age: int, **kwargs: str):
    """
    打印用户的个人资料
    :param name: 用户姓名
    :param age: 用户年龄
    :param kwargs: 其他个人资料,如性别、职业等
    """
    print(f'{name} is {age} years old')
    for key, value in kwargs.items():
        print(f'{key}: {value}')

user_profile('Tom', 25, gender='male', occupation='developer')

# 输出:
# Tom is 25 years old
# gender: male
# occupation: developer
def personal_info(name: str, age: int, location: str='China') -> dict:
    """
    获取用户的个人信息
    :param name: 用户姓名
    :param age: 用户年龄
    :param location: 用户所在地,不传默认值为China
    :return: 用户的个人信息
    """
    return {'name': name, 'age': age, 'location': location}

print(personal_info('Tom', 25))
# 输出{'name': 'Tom', 'age': 25, 'location': 'China'}

print(personal_info('Alice', 30, 'USA'))
# 输出{'name': 'Alice', 'age': 30, 'location': 'USA'}

print(personal_info.__annotations__)
# 输出{'name': <class 'str'>, 'age': <class 'int'>, 'location': <class 'str'>, 'return': <class 'dict'>}

希望本文对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python函数参数和注解的使用 - Python技术站

(0)
上一篇 2023年6月5日
下一篇 2023年6月5日

相关文章

  • Python写在同一行文件中

    【问题标题】:Python write in the same line of filePython写在同一行文件中 【发布时间】:2023-04-04 21:11:01 【问题描述】: 假设我有这样的功能: f=open(‘file.txt’,’w’) n=0 while(n<20): f.write(n) n=n+1 f.close() 但循环将所…

    Python开发 2023年4月6日
    00
  • 用python修改excel表某一列内容的操作方法

    下面给出一个用Python修改Excel表某一列内容的完整实例教程。 准备工作 首先需要安装Python的pandas库和openpyxl库。 pip install pandas openpyxl 然后需要准备一个Excel表格,在这个例子中我们使用一个示例表格 example.xlsx,该表格有三列数据:id、name和 age,其中 id 是整型,na…

    python 2023年5月13日
    00
  • Python实现iOS自动化打包详解步骤

    Python实现iOS自动化打包详解步骤 本文介绍使用Python脚本实现iOS自动化打包的详细步骤。 准备工作 在开始之前,我们需要先准备好以下工具和材料: 一台Mac电脑 Xcode iOS开发者账号 Python3 打包脚本编写 创建python脚本文件,例如 build.py 导入必要的模块 python import os import subpr…

    python 2023年6月3日
    00
  • PyQt5实现将Matplotlib图像嵌入到Scoll Area中显示滚动条效果

    下面我将详细讲解如何使用PyQt5将Matplotlib图像嵌入到Scoll Area中实现滚动条效果。具体步骤如下: 1. 导入相关库 首先需要导入相关库,包括PyQt5、Matplotlib和Numpy等,示例代码如下: import sys import matplotlib.pyplot as plt from PyQt5.QtWidgets imp…

    python 2023年6月3日
    00
  • 一文解决Python切换版本问题

    一文解决Python切换版本问题 背景 在开发Python应用程序时,我们常常需要切换不同版本的Python环境,以满足不同的开发需求。 但是,每次手动切换Python环境非常麻烦。如果我们想要快速简便地切换Python环境,该怎么办呢? 解决方案 我们可以使用工具 pyenv 来管理Python环境。pyenv 可以方便地安装、切换和管理不同版本的Pyth…

    python 2023年5月14日
    00
  • python算法学习之计数排序实例

    Python算法学习之计数排序实例 计数排序是一种非比较排序算法,它的时间复杂度为O(n+k),其中n是待排序元素的个数,k是元素的取值范围。计数排序的基本思想是对于给定的输入序列中的每元素x,确定该序列中值小于x的元素的个数,然后将x直接存放到相应的输出序列的位置。计数排序的核心在于将输入的数据值转化为键存储在额外开的数组空间中。作为一种线性时间杂度的排序…

    python 2023年5月14日
    00
  • python中使用正则表达式将所有符合条件的字段全部提取出来

    Python中使用正则表达式将所有符合条件的字段全部提取出来的完整攻略 在Python中,我们可以使用正则表达式进行字符串匹配和提取。有时候我们需要将所有符合条件的字段全部提取来,这时候可以使用正则表达式的findall()函数。本攻略将详细解如何使用Python正则表达式将所有合条件的字段全部提取出来,包括如何使用findall()函数、如何使用re块。 …

    python 2023年5月14日
    00
  • python 随机森林算法及其优化详解

    下面是详细讲解“Python随机森林算法及其优化详解”的完整攻略。 随机森林算法 随机森林是一种集成学习算法,是由多个决策树组成的。随机森林的基本思是通过对多个决策树的预测结果进行综合,来得到更加准确的预测结果。 随机森林算法的主要骤如下: 从原始数据集中随机选择一定数量的样本,建一个训练集。 随机选择一定数量特征,构建一个决树。 重复步骤1和步骤2,构建多…

    python 2023年5月14日
    00
合作推广
合作推广
分享本页
返回顶部