Python参数种类介绍

Python参数种类介绍

相比于一些其他编程语言,Python提供了更多的参数种类选项。这是Python的一大特点,使用不同的参数类型,可以提高函数的可读性和可维护性。例如,使用关键字参数可以使函数调用更加清晰,不需要记住参数的顺序。
从函数定义和函数调用的角度分类,Python参数种类有:

1、位置参数(Positional argument):在调用函数时,按照函数定义中参数的顺序传递的参数。例如:
def add(a, b):  
    return a + b  
  
result = add(1, 2)  # 这里传递的就是位置参数  
print(result)  # 输出:3

2、关键字参数(Keyword argument):在调用函数时,使用参数的名字来传递的参数。关键字参数可以直接指定参数的值,不依赖于参数的位置。例如:
def add(a, b):  
    return a + b  
  
result = add(b=2, a=1)  # 这里传递的就是关键字参数  
print(result)  # 输出:3

3、默认[值]参数(Default argument):
在函数定义中,可以为参数设置默认值。当调用函数时,如果没有为该参数提供值,则使用默认值。例如:
def greet(name, age=20):
    print(f"Hello, {name}. You are {age} years old.")

greet("John")  # 输出:Hello, John. You are 20 years old.
greet("Alice", 18)  # 输出:Hello, Alice. You are 18 years old.

4、可变数量参数(Variable argument):在定义函数时,使用*号表示可变参数,将传入的参数打包成一个元组。可变参数使函数更加灵活,可以处理不确定数量的位置参数(positional arguments)。例如:
def sum_numbers(*args):  
    return sum(args)  
  
result = sum_numbers(1, 2, 3, 4, 5)  # 这里传递的就是可变数量位置参数  
print(result)  # 输出:15  
  
5、关键字可变参数(Keyword Variable Arguments):关键字可变参数允许函数接受任意数量的关键字参数。在函数定义时,可以使用**号来表示关键字可变参数。关键字可变参数使函数能够处理不确定数量和名称的关键字参数。例如:
def greet(**kwargs):  
    for key, value in kwargs.items():  
        print(f'{key}: {value}')  
  
greet(name='Alice', age=25)  # 这里传递的就是可变数量关键字参数  
输出:
name: Alice  
age: 25

特别提示:*args 和 **kwargs 只是通用的约定俗成的名称,实际上你可以使用其他名称来代替它们。但 * 和 ** 不能去掉。


还可以组合使用不同类型的参数。例如:
def greet(name, age=25, **kwargs):
    print(f"Hello, my name is {name}, I'm {age} years old.")
    for key, value in kwargs.items():
        print(f"{key} = {value}")

greet("Alice", age=30, city="New York", job="Software Engineer")
输出:
Hello, my name is Alice, I'm 30 years old.
city = New York
job = Software Engineer

解包参数(Unpacking argument)

Python中,解包参数是一种将可迭代对象(如列表、元组、字典等)拆分为单独的参数的方法。解包参数可以用于函数调用或者在赋值语句中。

1)函数调用中的解包参数:
def add(a, b):
    return a + b

numbers = [1, 2]
result = add(*numbers)
print(result)  # 输出:3
在上面的例子中,我们将列表numbers解包为两个参数a和b,然后将它们传递给函数add进行计算。

2)赋值语句中的解包参数:
numbers = [1, 2]
a, b = numbers
print(a)  # 输出:1
print(b)  # 输出:2
在这个例子中,我们将列表numbers解包为两个变量a和b,并分别赋值为列表中的第一个和第二个元素。

3)字典的解包参数:
person = {'name': 'Alice', 'age': 25}
print("My name is {name} and I am {age} years old.".format(**person))
# 输出:My name is Alice and I am 25 years old.
在这个例子中,我们使用**操作符将字典person解包为关键字参数,然后将它们传递给format方法进行字符串格式化。

  

更多情况,可参见 Python函数的参数详解 https://blog.csdn.net/cnds123/article/details/123264378

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学习&实践爱好者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值