Python函数参数和注解的使用

yizhihongxing

下面是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日

相关文章

  • pywinauto自动化测试使用经验

    Pywinauto自动化测试使用经验攻略 Pywinauto是一个用于Windows GUI自动化测试的Python库,可以模拟用户操作,自动化测试GUI应用程序。本篇攻略将为您介绍如何使用Pywinauto进行自动化测试,包括安装、环境配置、基础API使用和实际示例。 安装与配置 安装Pywinauto需要先安装Python,推荐使用Python3.x版本…

    python 2023年5月19日
    00
  • 一文教会你用Python实现pdf转word

    一文教会你用Python实现pdf转word 最近,有很多人在学习Python这门语言,使用Python可以实现很多有趣的功能,其中一项就是pdf转word。对于需要频繁将pdf转换为word文档的工作者,这是一个非常有用的功能。在本文中,我将教大家如何使用Python实现pdf转word的功能。 第一步:安装必要的库 要使用Python实现pdf转word…

    python 2023年6月5日
    00
  • 如何使用Python进行爬虫开发?

    使用Python进行爬虫开发需要以下步骤: 安装Python和相应的第三方库(比如requests和beautifulsoup4) 选择目标网站,并使用requests库发送GET请求获取HTML页面 使用beautifulsoup4库解析HTML页面,提取需要的信息 将提取的信息存储到本地文件或数据库中 以下是两个示例说明: 示例1:爬取新闻网站的标题和链…

    python 2023年4月19日
    00
  • Python函数关键字参数及用法详解

    Python函数关键字参数及用法详解 什么是关键字参数? Python函数除了普通的位置参数外,还可以使用关键字参数。所谓关键字参数,就是指在函数调用时,使用参数名来给函数传递参数值,这种方式既方便又易于理解。 关键字参数由参数名和参数值组成,以参数名=参数值的形式传递。关键字参数必须在普通参数之后传递,否则会引发语法错误。 一个函数可以接受多个关键字参数,…

    python 2023年6月5日
    00
  • python常见模块与用法

    Python 常见模块与用法 Python 作为一门强大的编程语言,在其强大的生态系统中拥有着海量的模块和库,供我们选择。本文将介绍一些 Python 常见的模块与用法及示例代码。 一、math 模块 math 模块提供了许多数学运算功能,包括三角函数、指数函数、对数函数、常数等等。 1.1 三角函数 例: import math print("s…

    python 2023年5月13日
    00
  • 【K哥爬虫普法】微信公众号爬虫构成不正当竞争,爬虫er面对金山,如何避免滥用爬虫?

    我国目前并未出台专门针对网络爬虫技术的法律规范,但在司法实践中,相关判决已屡见不鲜,K 哥特设了“K哥爬虫普法”专栏,本栏目通过对真实案例的分析,旨在提高广大爬虫工程师的法律意识,知晓如何合法合规利用爬虫技术,警钟长鸣,做一个守法、护法、有原则的技术人员。 案情介绍 2011年1月微信问世,腾讯公司经过持续投入,构建起包括微信平台、微信个人用户、开放平台、微…

    python 2023年4月22日
    00
  • 我通过python中的串口发送命令,但它们被发送多次而不是一次

    【问题标题】:i am sending commands through serial port in python but they are sent multiple times instead of one我通过python中的串口发送命令,但它们被发送多次而不是一次 【发布时间】:2023-04-01 05:50:02 【问题描述】: 我正在使用 c…

    Python开发 2023年4月8日
    00
  • Python 重构问题

    Python 重构是代码优化的一种重要方式。它通过重新组织现有代码来提高代码质量、可读性、可维护性和可扩展性。在这个过程中,开发者可以使用多种技术和工具来达到重构的目的。 1.什么是Python 重构? Python 重构是指在不改变代码可观察行为的前提下,重新组织已有代码,优化代码质量和性能。 Python 重构的主要目的是: 提高代码的可读性和可维护性。…

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