Python -函数的参数定义
一、函数的参数有四种,位置参数、默认参数、可变参数和关键字参数
def func(x, y=0, *arg, **args):
'''x为位置参数
y有默认值
*arg为可变参数
**args为关键字参数
'''
print('x= ', x)
print('y= ', y)
print('*arg= ', arg)
print('**arg= ', args)
二、仅输入位置参数时,默认参数会打印默认值
>>> func(1)
x= 1
y= 0
*arg= ()
**arg= {}
三、输入两个参数
>>> func(1,2)
x= 1
y= 2
*arg= ()
**arg= {}
三、可变参数:可变参数接收0个或多个参数。输入的多个参数会自动组合成一个tuple,变成可变参数
>>> func(1,2,3,4,5)
x= 1
y= 2
*arg= (3, 4, 5)
**arg= {}
可变参数可以直接接收一个list或者tuple,但是要在参数前面加上*
>>> list1 = [3, 4, 5]
>>> tuple1 = (3, 4, 5)
>>> func(1,2,*list1)
x= 1
y= 2
*arg= (3, 4, 5)
**arg= {}
>>> func(1,2,*tuple1)
x= 1
y= 2
*arg= (3, 4, 5)
**arg= {}
四、关键字参数:关键字参数接收0个或多个带参数名的参数,这些参数会自动组合为一个dict,变成关键字参数
>>> func(1, 2, [3, 4, 5], 6, name='alex', age=18)
x= 1
y= 2
*arg= ([3, 4, 5], 6)
**arg= {'name': 'alex', 'age': 18}
关键字参数可以直接接收一个dict,但是要在参数前面加上**
>>> dict1 = {'name': 'Alex', 'age': 18} >>> func(1, 2, [3, 4, 5], 6, **dict1)
x= 1
y= 2
*arg= ([3, 4, 5], 6)
**arg= {'name': 'Alex', 'age': 18}
五、实例说明
1、入参为可变参数
def sum(*nums):#求所有入参之和
sum = 0
for num in nums:
sum += num
return sum
输入0个或多个参数,查看结果:
>>> print('sum()= ', sum()) #输入0个参数,相当于传一个空元组
sum()= 0 >>> print('sum(1,2,3)= ', sum(1,2,3))
sum(1,2,3)= 6 >>> print('sum(*[1,2,3])= ', sum(*[1,2,3]))
sum(*[1,2,3])= 6 >>> print('sum(*(1,2,3))= ', sum(*(1,2,3)))
sum(*(1,2,3))= 6
2、入参为关键字参数
def user_info(name, age, **others): #获取用户信息
print(name, age, others)
输入用户信息,查看结果:
>>> user_info('zhang',18) #关键字参数为空时,返回一个空字典
zhang 18 {} >>> user_info('wang',19, city='shanghai',salary=500)
wang 19 {'city': 'shanghai', 'salary': 500} >>> user_info('li',20, sex='M')
li 20 {'sex': 'M'} >>> user_info('zhou',21,**{'sex': 'W', 'city': 'beijing', 'salary': 3000})
zhou 21 {'sex': 'W', 'city': 'beijing', 'salary': 3000}
Python -函数的参数定义的更多相关文章
- python 函数的参数定义及调用
参数定义:1. 位置参数: 这是熟悉的标准化参数,位置参数必须在调用函数中定义的准确顺序来传递,在没有默认参数的情况下,传入参数 的精确数目必须和声明的数目一致. def foo(who, ...
- Python函数可变参数*args及**kwargs详解
初学Python的同学们看到代码中类似func(*args, **kwargs)这样的函数参数定义时,经常感到一头雾水. 下面通过一个简单的例子来详细解释下Python函数可变参数*args及**kw ...
- 【转】Python函数默认参数陷阱
[转]Python函数默认参数陷阱 阅读目录 可变对象与不可变对象 函数默认参数陷阱 默认参数原理 避免 修饰器方法 扩展 参考 请看如下一段程序: def extend_list(v, li=[]) ...
- Python函数的基本定义和调用以及内置函数
首先我们要了解Python函数的基本定义: 函数是什么? 函数是可以实现一些特定功能的小方法或是小程序.在Python中有很多内建函数,当然随着学习的深入,你也可以学会创建对自己有用的函数.简单的理解 ...
- 详解python函数的参数
详解python函数的参数 一.参数的定义 1.函数的参数在哪里定义 在python中定义函数的时候,函数名后面的括号里就是用来定义参数的,如果有多个参数的话,那么参数之间直接用逗号, 隔开 案列: ...
- 可变数据类型不能作为python函数的参数
可变数据类型:列表.字典 不可变数据类型:整型.浮点型.字符串.元组 为什么可变数据类型不能作为python函数的参数?请看以下例子: def foo(a=[]): a.append(1) retur ...
- 11、Python函数基础(定义函数、函数参数、匿名函数)
函数先定义函数,后调用 一.定义函数: 1.简单的规则: 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 (). 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数. 函 ...
- python 函数传递参数的多种方法
python中函数根据是否有返回值可以分为四种:无参数无返回值,无参数有返回值,有参数无返回值,有参数有返回值. Python中函数传递参数的形式主要有以下五种,分别为位置传递,关键字传递,默认值传递 ...
- Python—函数的参数组合
参数组合 在Python中定义函数,可以用必选参数.默认参数.可变参数.关键字参数和命名关键字参数,这5种参数都可以组合使用.但是请注意,参数定义的顺序必须是:必选参数.默认参数.可变参数.命名关键字 ...
随机推荐
- qt的signal和slot机制
signal和slot是QT中的一大特点 signal/slot是Qt对象以及其派生类对象之间的一种高效通信接口 用户可以将N多个信号和单个槽相连接, 或者将将N个槽和单个信号连接, 甚至是一个信号和 ...
- java 各进程功能java,javac,javaw,javaws,javap
javac 代码编译成字节码 javap字节码解析成代码 java.exe用于启动window console 控制台程序 javaw.exe用于启动 GUI程序 javaws.exe用于web程序 ...
- linux信号的处理--部分源码分析
基于linux master v4.9版本 信号是异步的, 一.信号何时来 信号是异步的,对于一个进程随时都会接收到信号. 二.选择线程(task)来处理 那么一个进程接收到信号时,需要选择一个tas ...
- Murano Weekly Meeting 2015.10.20
Meeting time: 2015.October.20th 1:00~2:00 Chairperson: Serg Melikyan, PTL from Mirantis Meeting sum ...
- 封装RateLimiter 令牌桶算法
自定义注解封装RateLimiter.实例: @RequestMapping("/myOrder") @ExtRateLimiter(value = 10.0, timeOut = ...
- 深入理解.net remoting 与webservice
1. .NET Remoting .NET Remoting是微软随.NET推出的一种分布式应用解决方案,被誉为管理应用程序域之间的 RPC 的首选技,它允许不同应用程序域之间进行通信(这里的通信可以 ...
- vue学习中遇到的onchange、push、splice、forEach方法使用
最近在做vue的练习,发现有些js中的基础知识掌握的不牢,记录一下: 1.onchange事件:是在域的内容改变时发生,单选框与复选框改变后触发的事件. 2.push方法:向数组的末尾添加一个或多个元 ...
- 创建Graphics对象与Pen对象
Graphics对象表示GDI+绘图表面,是用于创建图形图像的对象,所以要通过GDI+创建绘图,必须先创建Graphics对象,然后才可以使用GDI+的笔.刷等结合颜色.字体等对象进行绘制线条形状.填 ...
- iOS-swift-枚举和结构体
1.枚举 使用关键字 enum 创 建枚举. 枚举默认起始值为 0,可以自定义起始值. 在枚举中可以定义方法,和类中定义的一样. 使用关键字 rawValue 访问当前枚举的值. enum Rank: ...
- golang and mogodb
1.golang的mogodb包下载:http://gopkg.in/mgo.v2 http://gopkg.in/mgo.v2/bson 2.golang的mongodb操作(mgo):htt ...