当前位置: 首页 > news >正文

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

http://www.lryc.cn/news/209452.html

相关文章:

  • react事件机制
  • JAVA删除excel指定列
  • Netty编码器和解码器
  • 大语言模型(LLM)综述(三):大语言模型预训练的进展
  • 如何在Node.js中使用环境变量或命令行参数来设置HTTP爬虫ip?
  • VMware打开共享虚拟机后找不到/mnt/hgfs/文件夹,以及不能拖拽/复制粘贴等操作,ubuntu不能安装VMware tools
  • pytorch 入门 (五)案例三:乳腺癌识别识别-VGG16实现
  • 【QT开发(14)】QT P2P chat 聊天
  • 解决adb root命令时错误 adbd cannot run as root in production builds
  • 操作系统中套接字和设备独立性软件的关系
  • C++ Qt/VTK装配体组成联动连接杆
  • File文件查找
  • 小程序 wxml2canvas开发文档
  • SpringCloud微服务 【实用篇】| 认识微服务
  • Csdn文章编写参考案例
  • Jmeter性能测试:高并发分布式性能测试
  • 2015年亚太杯APMCM数学建模大赛B题城市公共交通服务水平动态评价模型求解全过程文档及程序
  • CCF CSP认证历年题目自练 Day40
  • 闲聊一下写技术博客的一些感想
  • 单片机为什么一直用C语言,不用其他编程语言?
  • 利用HTTP2,新型DDoS攻击峰值破纪录
  • android鼠标滚轮事件监听方法
  • 【C语言|关键字】C语言32个关键字详解(4)——其他(typedef、sizeof)
  • Hafnium简介和构建
  • 2023年香水行业数据分析:国人用香需求升级,高端香水高速增长
  • 这可能是最简单的Page Object库
  • 论文阅读——BERT
  • 竞赛 深度学习人体跌倒检测 -yolo 机器视觉 opencv python
  • Springboot创建多数据源
  • 【Hello Algorithm】滑动窗口内最大值最小值