❤️ 专栏简介:本专栏记录了我个人从零开始学习Python编程的过程。在这个专栏中,我将分享我在学习Python的过程中的学习笔记、学习路线以及各个知识点。
☀️ 专栏适用人群 :本专栏适用于希望学习Python编程的初学者和有一定编程基础的人。无论你是学生、职场人士还是对编程感兴趣的爱好者,都能从中受益。跟着我的学习笔记一起学习python吧。
🌙专栏目标:本专栏的目标是帮助我自己记忆、方便回顾所学知识以及帮助其他想学习python的小伙伴掌握Python编程语言的基本概念和技巧,并逐步提高我们的编程能力。通过这个专栏,我们将学会如何编写Python代码,理解各种数据类型、控制结构和函数,掌握常用的Python模块和库,以及应用Python解决实际问题。⭐️ 专栏主要内容: 主要学习python的开发环境搭建;Python的基础知识,包括变量、数据类型、条件语句和循环等;python的数据结构和算法;python的函数和模块;python的文件处理等。
🌴 专栏说明 :如果文章知识点有错误的地方,欢迎大家随时在文章下面评论,我会第一时间改正。让我们一起学习,一起进步。
💑专栏主页:从零开始的Python入门之路
在Python中,函数参数的灵活性是编程中的一个关键方面。不同类型的参数允许我们以多种方式定义和调用函数。在这篇博客中,我将详细介绍函数参数的各种形式,包括位置实参、关键字实参、默认值形参、关键字形参、个数可变的位置形参和个数可变的关键字形参。
文章目录
- 位置实参
- 关键字实参
- 默认值形参
- 关键字形参
- 个数可变的位置形参
- 个数可变的关键字形参
- 总结
位置实参
位置实参是最常见的参数传递方式,将序列中的每个元素都转换为位置实参,使用*
操作符。
def greet(name, age):
"""
函数用于打印问候语,接受两个位置实参。
参数:
- name: 字符串,表示要问候的人的名字。
- age: 整数,表示要问候的人的年龄。
"""
print(f"Hello, {name}! You are {age} years old.")
# 调用函数,传递位置实参
greet(*("Alice", 25))
运行结果:
Hello, Alice! You are 25 years old.
解释:使用*
操作符将元组中的元素转换为位置实参,传递给greet
函数。
关键字实参
关键字实参是通过将字典中的每个键值对转换为关键字实参,使用**
操作符。
def greet(name, age):
"""
函数用于打印问候语,接受两个关键字实参。
参数:
- name: 字符串,表示要问候的人的名字。
- age: 整数,表示要问候的人的年龄。
"""
print(f"Hello, {name}! You are {age} years old.")
# 调用函数,传递关键字实参
greet(**{"name": "Bob", "age": 30})
运行结果:
Hello, Bob! You are 30 years old.
解释:使用**
操作符将字典中的键值对转换为关键字实参,传递给greet
函数。
默认值形参
默认值形参是在函数定义时为参数指定默认值,如果调用时未提供该参数的值,则使用默认值。
def greet(name, greeting="Hello"):
"""
函数用于打印问候语,默认问候语为"Hello"。
参数:
- name: 字符串,表示要问候的人的名字。
- greeting: 字符串,表示问候语,默认值为"Hello"。
"""
print(f"{greeting}, {name}!")
# 调用函数,未提供默认值形参的值
greet("Charlie")
运行结果:
Hello, Charlie!
解释:greeting
参数有一个默认值"Hello",如果在调用函数时未提供该参数的值,则使用默认值。
关键字形参
关键字形参是在函数定义时使用*
将之后的参数强制为关键字形式,调用时必须使用关键字方式传递。
def greet(name, *, greeting="Hello"):
"""
函数用于打印问候语,强制使用关键字形参。
参数:
- name: 字符串,表示要问候的人的名字。
- greeting: 字符串,表示问候语,默认值为"Hello",强制使用关键字形参。
"""
print(f"{greeting}, {name}!")
# 调用函数,使用关键字形参
greet("David", greeting="Hi there")
运行结果:
Hi there, David!
解释:使用*
将之后的参数强制为关键字形式,调用时必须使用关键字方式传递。
个数可变的位置形参
个数可变的位置形参允许函数接受任意数量的位置参数,使用*
操作符。
def variable_args(*args):
"""
函数用于演示个数可变的位置参数。
参数:
- args: 个数可变的位置参数,封装成元组。
"""
print("Received arguments:", args)
# 调用函数,传递不同数量的位置参数
variable_args(1, 2, 3)
variable_args('a', 'b', 'c', 'd')
运行结果:
Received arguments: (1, 2, 3)
Received arguments: ('a', 'b', 'c', 'd')
解释:*args
允许函数接受任意数量的位置参数,并将它们封装成一个元组。
个数可变的关键字形参
个数可变的关键字形参允许函数接受任意数量的关键字参数,使用**
操作符。
def variable_kwargs(**kwargs):
"""
函数用于演示个数可变的关键字形参。
参数:
- kwargs: 个数可变的关键字形参,封装成字典。
"""
print("Received keyword arguments:", kwargs)
# 调用函数,传递不同数量的关键字参数
variable_kwargs(name='Alice', age=25)
variable_kwargs(city='Wonderland', profession='Adventurer')
运行结果:
Received keyword arguments: {'name': 'Alice', 'age': 25}
Received keyword arguments: {'city': 'Wonderland', 'profession': 'Adventurer'}
解释:**kwargs
允许函数接受任意数量的关键字参数,并将它们封装成一个字典。
总结
在Python函数中,参数的灵活使用对于构建强大而灵活的函数至关重要。位置实参、关键字实参、默认值形参、关键字形参、个数可变的位置形参和个数可变的关键字形参都是Python函数中常用的参数形式,它们为函数提供了多样性和适应性,使得函数的定义和调用更为灵活和自由。
参考链接:
- Python 官方文档 - 函数定义
- Real Python - Python Args and Kwargs: Demystified