python *args **kwargs,传入不固定的参数给函数,或者传入很多的内容给函数,常用在构造函数中。
'''
例1:展示*args的用法,传入多个参数,不进行预先定义。
本例传入了3个参数。没有预先定义。在函数内自动生成元组()
'''
def q1(*args):
print('例1')
print(args)
print(type(args))
print(args[0])
t1 = 123
t2 = 234
t3 = 345
q1(t1, t2, t3)
print('-----------------')
'''
例2,和例1一样,但是传入字符串,元组,列表,都会在函数内生成元组()
注意引入参数时要有*号,
没有星号,函数把你传入的参数列表(元组,字符串)当作一个参数来处理。
有星号时,函数把你传入的参数列表(元组,字符串)当作多个参数来处理,在函数内生成元组()
如最后一个调用q2(t3)
'''
def q2(*args):
print('例2')
print(args)
print(type(args))
print(args[0])
t1 = 123,234,345
q2(*t1)
t2 = (234,345,456)
q2(*t2)
t3=[345,456,567]
q2(*t3)
q2(t3)
print('-----------------')
'''
例3,本例展示使用**kwargs,传入字典,函数内同样还是字典。
'''
def q3(**kwargs):
print('例3')
print(kwargs)
print(type(kwargs))
print(kwargs['name1'])
di = {
'name1': 'jack',
'name2': 'rose',
}
q3(**di)
print('-----------------')
'''
例4:本例展示,函数定义时,可以同时使用*args,**kwargs来定义函数。
但是引用时,可以分开引用,只引用*args,或只引用**kwargs,暂时屏蔽函数内对元组和字典的使用,避免报错。
'''
def q4(*args,**kwargs):
print('例4')
print(args)
# print(args[0])
print(kwargs)
# print(kwargs.get('name1'))
t1 = 123,234,345
di = {
'name1': 'jack',
'name2': 'rose',
}
q4(*t1)
print('---')
q4(**di)
print('-----------------')
'''
例5,本例展示同时定义*args,**kwargs,并且同时使用。
'''
def q5(*args,**kwargs):
print('例5')
print(args)
print(args[0])
print(kwargs)
print(kwargs.get('name1'))
t1 = 123,234,345
di = {
'name1': 'jack',
'name2': 'rose',
}
q5(*t1,**di)
print('-----------------')
'''
例6,本例展示把*args,作为多余的参数传入函数,也是看代码经常看到的。
'''
def q6(t1,t2,*args):
print('例6')
print(t1)
print(t2)
print(args)
print(args[0])
t1 = 123,234,345
q6('t123','t234',*t1)
print('-----------------')
'''
例7,本例展示把**kwargs,作为多余的参数传入函数,也是看代码经常看到的。
'''
def q7(k1,k2,**kwargs):
print('例7')
print(k1)
print(k2)
print(kwargs)
print(kwargs.get('name1'))
pass
di = {
'name1': 'jack',
'name2': 'rose',
}
q7(k1='t123',k2='t234',**di)
print('-----------------')
'''
例8,本例展示把*args,**kwargs共同使用,作为多余的参数传入函数,也是看代码经常看到的。
除函数定义的k1,k2,又在引用时,加入了 't345',k3=1,
结果
t123 (k1)
t234 (k2)
('t345', 123, 234, 345) (args)
{'k3': 1, 'k4': 2, 'name1': 'jack', 'name2': 'rose'} (kwargs)
jack kwargs['name1']
'''
def q8(k1,k2,*args,**kwargs):
print('例8' )
print(k1)
print(k2)
print(args)
print(kwargs)
print(kwargs.get('name1'))
pass
t1 = 123,234,345
di = {
'name1': 'jack',
'name2': 'rose',
}
q8('t123','t234','t345',k3=1,k4=2,*t1,**di)
print('-----------------')
基本上也就这么多了。
python *args **kwargs,传入不固定的参数给函数,或者传入很多的内容给函数,常用在构造函数中。的更多相关文章
- python args kwargs 传递参数的区别
先来看个例子: def foo(*args, **kwargs): print 'args = ', args print 'kwargs = ', kwargs print '----------- ...
- python *args **kwargs
简单来说,当你传入的参数不能确定是几个的时候会用到 *args和**kwargs,这里星号后边只是个代号,你写成a也可以. 而这两者的区别是 如果是键值对就要用后者,反之前者就可以. 同时还可以用(a ...
- Python args **kwargs作用
python当函数的参数不确定时,可以使用*args和**kwargs,*args用于捕获所有no keyword参数,它是一个tuple.**kwargs捕获所有keyword参数,它是一个dict ...
- python *args,**kwargs用法
*args用于接受传入的值,无限制,但是不能接收key类型的,如c=2 def fun(*args): for i in args: print(i) print("test") ...
- Python args kwargs 技巧
def f(*args): print(args) a=[1, 2, 3] f(a) f(*a) 运行结果: ([1, 2, 3],) (1, 2, 3) def f(**kwargs): print ...
- Python面试题之这两个参数是什么意思:*args,**kwargs?我们为什么要使用它们?
如果我们不确定要往函数中传入多少个参数,或者我们想往函数中以列表和元组的形式传参数时,那就使要用*args: 如果我们不知道要往函数中传入多少个关键词参数,或者想传入字典的值作为关键词参数时,那就要使 ...
- Python 第三篇(上):python文件基础操作、json模块、lambda、map、filter、reduce和函数位置参数
python一切皆对象,linux一切皆文件,python操作文件是很常见的O/I操作,其内置来open()函数可以完成文件的基本操作: 一:使用内置open()函数操作文件,基本语法如下: with ...
- python之动态参数 *args,**kwargs和命名空间
一.函数的动态参数 *args,**kwargs, 形参的顺序1.你的函数,为了拓展,对于传入的实参数量应该是不固定,所以就需要用到万能参数,动态参数,*args, **kwargs 1,*args ...
- python的函数介绍 位置参数 关键字参数 默认参数 参数组 *args **kwargs
1.数学意义的函数与python中的函数 数学意义的函数 y = 2*3+1 x =3 y =7 x是自变量,y是因变量 2.python中定义函数的方法 一个函数往往都是为了完成一个特定的功能而存在 ...
随机推荐
- 高通平台启动log概述(PBL log、sbl1 log、kernel log)【转】
本文转自:https://blog.csdn.net/RadianceBlau/article/details/78416776?utm_source=blogxgwz9 高通平台启动log概述(PB ...
- 为 Android 8.0 添加开机启动脚本【转】
本文转载自:https://zhuanlan.zhihu.com/p/32868074 本人对于 SELinux for Android 理解不深,下文中的各文件及安全规则虽都是我所编写,但也是一边查 ...
- POJ 3687 Labeling Balls(拓扑排序)题解
Description Windy has N balls of distinct weights from 1 unit to N units. Now he tries to label them ...
- C#中配置文件保存的路径
http://www.codeproject.com/Tips/350010/Saving-User-Settings-in-Winform-Application 外网上找的资料 winform提供 ...
- 【深度学习】Pytorch学习基础
目录 pytorch学习 numpy & Torch Variable 激励函数 回归 区分类型 快速搭建法 模型的保存与提取 批训练 加速神经网络训练 Optimizer优化器 CNN MN ...
- python 正则表达式匹配特定浮点数
def is_decimal(num): import re #以数字开头,小数点后保留1位数字或两位数字或者没有小数部分 dnumre = re.compile(r""" ...
- 使用uWSGI和nginx来设置Django和你的web服务器
本教程针对那些想要设置一个生产web服务器的Django用户.它介绍了设置Django以使得其与uWSGI和nginx工作良好的必要步骤.它涵盖了所有三个组成部分,提供了一个web应用和服务器软件的完 ...
- 《剑指offer》第三十四题(二叉树中和为某一值的路径)
// 面试题34:二叉树中和为某一值的路径 // 题目:输入一棵二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所 // 有路径.从树的根结点开始往下一直到叶结点所经过的结点形成一条路径. #i ...
- node - web 服务器 、server 服务器
node 作为服务端 - 基本使用 1. web 服务器 web.html <!DOCTYPE html> <html> <head> <meta chars ...
- Codeforces 913D - Too Easy Problems
913D - Too Easy Problems 思路:二分check k 代码: #include<bits/stdc++.h> using namespace std; #define ...