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学习笔记之函数的参数和返回值的使用 1.函数的参数 函数的参数指的是传递给函数的变量,在 Python 中,有以下几种参数: 1.1 必需参数 必需参数即传递给函数的参数是必须的,如果不传递参数或者传递的参数少于函数需要的参数,则会抛出 TypeError 异常。 举个例子,下面是一个计算两个数之和的函数,它需要两个必需参数: def add(x…

    python 2023年5月14日
    00
  • python pandas分割DataFrame中的字符串及元组的方法实现

    我来详细讲解一下“Python Pandas分割DataFrame中的字符串及元组的方法实现”的完整攻略。 1. 背景介绍 在处理Pandas DataFrame数据时,我们可能会遇到需要对DataFrame中的字符串和元组进行分割的需求。比如,我们可能需要把DataFrame中的某个字符串列按照特定的分隔符进行拆分,或者需要把元组中的某个元素进行提取。 2…

    python 2023年5月14日
    00
  • Django结合ajax进行页面实时更新的例子

    首先我们需要了解什么是Django和ajax。 Django是一个高效、可扩展、开源的Web框架,它使用Python语言编写,可以帮助开发人员快速构建复杂的Web应用程序。而ajax则是一种用于交互式Web应用程序中的技术,可以帮助我们在不刷新整个页面的情况下更新部分页面内容。 基于这两个技术,我们可以使用Django结合ajax进行页面的实时更新。下面详细…

    python 2023年6月3日
    00
  • 如何在Python中使用SQLAlchemy操作Microsoft SQL Server数据库?

    以下是如何在Python中使用SQLAlchemy操作Microsoft SQL Server数据库的完整使用攻略,包括安装SQLAlchemy库、连接Microsoft SQL Server数据库、创建表、插入数据查询数据、更新数据、删除数据等步骤。同时,提供了两个示例以便更好理解如何在Python中使用SQLAlchemy操作Microsoft Serv…

    python 2023年5月12日
    00
  • python批量将excel内容进行翻译写入功能

    下面我将为您讲解如何使用Python批量将Excel内容进行翻译并写入的完整实例教程。这个过程主要分为三步,具体如下: 步骤一:安装所需依赖 首先,我们需要安装Python的依赖库openpyxl和googletrans。这两个库均可通过pip进行安装。 pip install openpyxl googletrans==3.1.0a0 步骤二:编写代码 接…

    python 2023年5月13日
    00
  • python实现鸢尾花三种聚类算法(K-means,AGNES,DBScan)

    Python实现鸢尾花三种聚类算法(K-means, AGNES, DBScan) 1. 简介 聚类是一种无监督学习算法,它将相似的数据点分组到同一个簇中。本文将介绍如何使用Python实现三种聚类算法:K-means、AGNES和DBScan,并使用鸢尾花数据集进行演示。 2. 数据集 我们将使用鸢尾花数据集来演示如何使用聚类算法。该数据集包含150个样本…

    python 2023年5月14日
    00
  • 详解Python如何实现输出颜色字体到终端界面

    下面我就来详细讲解一下“详解Python如何实现输出颜色字体到终端界面”的完整攻略。 准备工作 首先,我们需要安装 termcolor 库。打开终端,输入以下命令来安装: pip install termcolor 文字颜色输出 要在终端输出彩色文字,我们可以使用 termcolor 库中的 colored 方法。该方法需要传入两个参数:要输出的文字以及文字…

    python 2023年6月5日
    00
  • python解压TAR文件至指定文件夹的实例

    想要解压TAR文件至指定文件夹,需要使用Python标准库中的TarFile模块。具体步骤如下: 步骤一:导入TarFile模块 在Python中,我们使用import语句来导入需要使用的模块。因此,在开始解压TAR文件之前,需要在代码开头导入TarFile模块。 import tarfile 步骤二:打开TAR文件 使用TarFile模块中的open()函…

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