python中收集参数

 

在定义函数的时候,若实参个数不确定,形参就可以使用收集参数来“搞定”,仅需要在参数前面加上星号(*)即可。

 

1、 使用收集参数来表示形式参数时,需要在参数前加上星号。

复制代码
>>> def a(*x):
    print("total %d parameter!" % len(x))
    print("second parameter:",x[1])

    
>>> a(3,8,4,7,9)
total 5 parameter!
second parameter: 8
复制代码

 

2、使用参数前加星号的方法来表示未知实参个数的形式参数的时候,形参被打包为元组

复制代码
>>> def a(*x):
    print("total parameter:", len(x))
    print("second parameter:", x[1])
    print(type(x))

    
>>> a("aaa","dddd","bbbb","cccc")
total parameter: 4
second parameter: dddd
<class 'tuple'>
复制代码

 

3、收集参数可以和关键字参数结合使用

复制代码
>>> def a(*x,y):
    print("collection parameter are:", x)
    print("key word parameter is:", y)

    
>>> a(4,2,"saaa","dddd",y = "88888")
collection parameter are: (4, 2, 'saaa', 'dddd')
key word parameter is: 88888
复制代码

 

4、

在函数的定义中,收集参数前面的星号(*)起到的作用称为“打包”操作,就是将多个参数打包成一个元组的形式进行存储。

星号(*)在形式参数中的作用是打包,而在实际参数中的作用相反,起到“解包”的作用。

复制代码
>>> a = "helloworld"
>>> print(*a)
h e l l o w o r l d
>>> a = (3,1,8,9,4)
>>> print(*a)
3 1 8 9 4
>>> a = ["aaa","ccc","ddd","bbb"]
>>> print(*a)
aaa ccc ddd bbb
复制代码

 

posted @   小鲨鱼2018  阅读(421)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示