python函数的多种参数使用形式

news/2025/3/20 10:54:13/

目录

1. 位置参数(Positional Arguments)

2. 关键字参数(Keyword Arguments)

3. 默认参数(Default Arguments)

4. 可变参数(Variable Positional Arguments)

5. 关键字可变参数(Variable Keyword Arguments)

6. 特殊用法:传递列表或字典作为参数


Python中函数的参数使用形式非常灵活,主要包括以下几种类型:位置参数、关键字参数、默认参数、可变参数和关键字可变参数。这些参数类型各有特点,适用于不同的场景。

1. 位置参数(Positional Arguments)

位置参数是最常见的参数类型,调用函数时根据函数定义的参数位置来传递参数。位置参数要求传递的参数和定义的参数的顺序以及个数必须一致。例如:

python"> def user(name, age, gender):print(f"Name: {name}, Age: {age}, Genda:{gender}")​user("Alice", 20, "Female")  # 正确user("Alice", 20)  # 参数数量错误user(25, "Alice", "Female")  # 参数顺序错误

2. 关键字参数(Keyword Arguments)

函数调用时通过“键=值”的形式传递参数,也就是通过参数名传递值,从而忽略参数顺序,让函数调用更加清晰。关键字参数还可以与位置参数混用,但是位置参数必须在关键字参数的前面,关键字参数之间不存在先后顺序。例如:

python"> def user(name, age, genda):print(f"Name: {name}, Age: {age}, Genda:{gender}")​user(name="Alice", age=25, genda="Female")  # 正确user(age=20, name="Alice", genda="Female")  # 正确user("Alice", age=20, genda="Female")  # 正确user(age=20, "Alice", genda="Female")  # 错误,位置参数必须在关键字参数前面

3. 默认参数(Default Arguments)

默认参数也叫缺省参数,在函数定义中为某些参数提供默认值,如果调用时未传递这些参数,则使用默认值。但是要注意所有位置参数必须要出现在默认参数前面,包括函数的定义和调用。例如:

python"> def user(name, age, genda="Famale"):print(f"Name: {name}, Age: {age}, Genda:{gender}")​user("Alice", 20)  # 使用默认性别Famaleuser("Bob", 21, "Male")  # 指定性别Male

4. 可变参数(Variable Positional Arguments)

可变参数也叫不定长参数,允许函数接受任意数量的位置参数(不传参也可以),并将其存储为元组。传入的参数都会被 *args 变量收集,它会根据传进参数的位置合并为一个元组,这就是位置传递。

示例:

python"> def user(*args):print(args)​user("Alice")  # 传入一个参数user("Alice", 20)  # 传入两个参数

5. 关键字可变参数(Variable Keyword Arguments)

关键字可变参数允许函数接受任意数量的关键字参数,并将其存储为字典**kwargs 收集所有未命名的关键字额外参数。

示例:

python"> def user(**kwargs):print(kwargs)​user(name="Alice", age=20)  # 传入两对键值对参数

关键字可变参数适用于需要处理不确定数量的关键字输入的场景。

6. 特殊用法:传递列表或字典作为参数

Python允许将列表或字典直接作为参数传递给函数,这在处理集合类型的输入时非常有用。例如:

python"> def print_list(numbers):for number in numbers:print(number)​print_list([1, 2, 3])  # 输出:1, 2, 3​def print_dict(data):for key, value in data.items():print(f"{key}: {value}")​print_dict({"name": "Alice", "age": 25})  # 输出:name: Alice, age: 25

http://www.ppmy.cn/news/1580575.html

相关文章

单片机学完开发板,如何继续提升自己的技能?

很多人学完开发板后都会卡在一个尴尬的阶段:觉得自己会的东西不少,但又不知道下一步该干啥。会点C语言,能烧录程序,能点亮LED,玩转按键,搞定串口等等,能用开发板做点小玩意儿,但面对…

联合省选2023游记

Day -? 初一,住宿,在学校接到电话,得知有比赛,“难度高于 NOIP”。 因为上次春测没去,导致 4 4 4 级绿勾飞了,这次想都没想就报名了。 Day -6 一次模拟赛, 300 300 300 分的总分得了 15 …

Unity Shader编程】之渲染流程之深度及pass详解

关于透明物体的渲染,首先需要了解以下部分 深度缓冲区深度写入深度测试pass渲染和深度测试的过程深度测试和颜色混合过程 ** 一,深度缓冲区 ** 深度即物体距离相机的距离,深度写入即是把物体的距离相机信息记录下来,写入一个名…

运维面试题(六)

1.statefulset用来管理有状态的应用程序,有状态是什么意思? 每一个pod都有一个固定的网络标识符,在整个生命周期中不会改变。每个实例都可以拥有自己的持久化存储卷,即使容器被删除并重新创建,存储卷仍然存在。Statef…

自然语言处理入门

第一章 自然语言处理入门 1 什么是自然语言处理 【什么是人工智能,分别对应哪几个领域】 AI是模仿甚至超越人的某项机能,NLP、CV、ASR NLP是机器理解并生成人类语言2 自然语言处理的发展简史 1950 -- 图灵提出“机器能思考吗”,划时代性的…

Flutter中常用命令

1.检测flutter运行环境 flutter doctor 2.升级flutter flutter upgrade 3.查看flutter 版本 flutter --version 4.查看连接的设备 flutter devices 5.运行flutter项目 flutter run 或者在vscode中按FnF5 6.打包 flutter build apk //默认打release包 7.开…

微前端 qiankun vite vue3

文章目录 简介主应用 qiankun-main vue3 vite子应用 qiankun-app-vue2 webpack5子应用 qiankun-react webpack5子应用 quankun-vue3 vite遇到的问题 简介 主要介绍以qiankun框架为基础,vite 搭建vue3 项目为主应用,wepack vue2 和 webpack react 搭建的…

Oracle+11g+笔记(11)-数据库的安全管理

Oracle11g笔记(11)-数据库的安全管理 11、数据库的安全管理 11. 1 用户管理 11.1.1 创建用户 创建用户可以采用CREATE USER命令来完成。下面是CREATE USER 命令的语法。 CREATE USER username IDENTIFIED BY password OR IDENTIFIED EXTERNALLY OR IDENTIFIED GLOBALLY AS…