python函数定义语法总结
见下面代码及注释:
def calc(value):
sum=0
for m in value:
sum=sum+m
return sum data=[1,2,3,4,5,6,7,8,9,10]
print(str(calc(data)))
print(calc([1,2,3]))
print(calc((1,2,3)))
#print(calc(1,2,3)) 这句会报错,不过可以用可变参数改造函数calc def calc1(*value):
sum=0
for m in value:
sum=sum+m
return sum
#函数calc1为可变参数
print(calc1(1,2,3))
print(calc1()) #甚至还可以零参数调用 #如果有一个list或者tuple要调用可变参数怎么搞
nums=[1,2,3]
#print(calc1(nums)) 这句报错: unsupported operand type(s) for +: 'int' and 'list'
#像下面这样调用就可以
print(calc1(nums[0],nums[1],nums[2]))
#也可以这样调用,表示把nums这个list的所有元素做为一个可变参数传递进去
print(calc1(*nums)) #下面演示关键字参数
#关键字参数允许你传入0个或任意个含参数名的参数,
# 这些关键字参数在内部自动装为一个dict
def person(name,age,**kw):
print('name:',name,'age:',age,'other:',kw) print(person('刘小勇',30))
print(person('刘小勇',35,city='北京',job='软件工程师')) data1={'city':'北京','job':'卖菜'}
print(person('刘小能',45,city=data1['city'],job=data1['job']))
print(person('刘小勇',45,**data1)) #命名关键字参数
def person1(name,age,*,city,job):
print(name,age,city,job) print(person1("刘小勇",45,city="武汉",job="总统"))
#命令关键字参数只接受city,job,下面的调用因此会报错
#person1() got an unexpected keyword argument 'bby'
#print(person1("lxy",32,bby="kkk",job2="kkk2")) #命名关键勃参数还可以有缺省值
def person2(name,age,*,city="wuhan",job):
print(name,age,city,job) print(person2('xly2',23,job='')) #参数组合
#5种参数组合,必须按以下列顺序组合
#必选参数、默认参数、可变参数/命名关键字参数和关键字参数 def f1(a,b,c=0,*args,**kw):
print('a=',a,'b=',b,'c=',c,'args=',args,'kw=',kw)
def f2(a,b,c=0,*,d,**kw):
print('a=',a,'b=',b,'c=',c,'d=',d,'kw=',kw) print(f1(1,2))
print(f1(1,2,c=3))
print(f1(1,2,3,'a','b'))
print(f1(1,2,3,'a','b',x=33))
print(f2(1,2,d=99,ext=None)) #你甚至可以通过一个tuple和dict调用上面的函数
args=(1,2,3,4)
kw={'d':99,'x':'#'}
print(f1(*args,**kw)) args=(1,2,3)
kw={'d':88,'x':'#'}
print(f2(*args,**kw))
#所以,对于任意函数,都可以通过类似fun(*args,**kw)的形式调用它,无论它的参数
#是如何定义的 #几点总结
#默认参数一定要用不可变的对象
#*args是可变参数,接受一个tuple或list
#**kw是关键字参数,接受一个dict
python函数定义语法总结的更多相关文章
- Python(2)深入Python函数定义
Python学习 Part2:深入Python函数定义 在Python中,可以定义包含若干参数的函数,这里有几种可用的形式,也可以混合使用: 1. 默认参数 最常用的一种形式是为一个或多个参数指定默认 ...
- Python函数定义和使用
函数是一段可以重复多次调用的代码,通过输入的参数值,返回需要的结果.通过使用函数,可以提高代码的重复利用率.本文主要介绍Python函数的定义.调用和函数参数设置方法. 函数的定义 Python函数定 ...
- Python 函数定义以及参数传递
Python 函数定义以及参数传递1.函数定义#形如def func(args...): doSomething123以关键字def 开头,后面是函数名和参数下面是函数处理过程. 举例: def ad ...
- Python 函数定义和使用
# 函数的概念 # 概念 # 写了一段代码实现了某个小功能; 然后把这些代码集中到一块, 起一个名字; 下一次就可以根据这个名字再次使用这个代码块, 这就是函数 # 作用 # 方便代码的重用 # 分解 ...
- 初识python 函数(定义,传参,返回值)
python基础(二): 菜鸟教程基础知识讲解的非常全面,内容选择我认为的重点输出一遍 函数: 定义一个函数: 你可以定义一个由自己想要功能的函数,以下是简单的规则: def fun(arg): pa ...
- python函数定义
刚学用Python的时候,特别是看一些库的源码时,经常会看到func(*args, **kwargs)这样的函数定义,这个*和**让人有点费解.其实只要把函数参数定义搞清楚了,就不难理解了. 先说说函 ...
- python 函数定义及调用
1.什么是函数? 在程序中,函数就是具备某一功能的工具,事先将工具准备好即函数的定义:遇到应用场景拿来就用即函数的调用:函数必须遵循先定义后调用的原则 2.为什么要用函数 不用函数的问题是: 程序冗长 ...
- Python学习-10.Python函数定义(二)
在Python中定义函数的时候,可以使用参数默认值的方式定义函数 例子: def welcome(who,state='is',action='talking'): print(who,state,a ...
- 9 - Python函数定义-位置参数-返回值
目录 1 函数介绍 1.1 为什么要使用函数 1.2 Python中的函数 2 函数的基本使用 3 函数的参数 3.1 参数的默认值 3.2 可变参数 3.2.1 可变位置传参 3.2.2 可变关键字 ...
随机推荐
- u3d Mecanim动画
作为Unity4.0的主要更新功能,Mecanim动画被寄予了很多的期望.系统有先进的地方,也有不足的地方.这些我们留到最后再来总结. 阿赵粗略的学习了一下,写下以下的教程.这篇教程简单的说明了Mec ...
- Launchpad图标大小怎么调整?
一.首先运行“终端”程序,执行以下命令: 1.调整每一列显示图标数量,7 表示每一列显示7个 defaults write com.apple.dock springboard-rows -int 7 ...
- PHP安全之临时文件的安全
(一)临时文件简介临时文件,顾名思义是临时的文件,文件的生命周期短.然而,很多应用的运行都离不开临时文件,临时文件在我们电脑上无处不在,通常有以下几种形式的临时文件: 文件或图形编辑程序,所生成的中间 ...
- [转]Apache 监听端口失败,selinux惹的祸
原文在此 CentOS 下启动Httpd 失败,报 (13)Permission denied: make_sock: could not bind to address [::]:8000 因为 小 ...
- SharePoint 2013 处理Promoted Links类型的List下的Tiles View的默认Webpart展示方式
问题: 为了去掉Photo Gallery的水平滚动效果,更改为根据内容进行自适应宽度多行显示效果 Promoter link --> photo gallery Not horizontal ...
- Xcode不太常见又实用的小技巧
备份, 原文: http://rocry.com/2012/12/17/xcode-tips/ 让代码中的TODO和FIXME变成Warning 选中某个Target > Build Phase ...
- Oracle:使用二进制工具修改高版本的 exp (dump)文件,以便 低版本 imp 工具 导入
printf "\x31" | dd of=product_2018-10-08.dmp conv=notrunc bs=1 count=1 seek=12
- php解析mpp文件中的资源
获取层级的project任务 参考 启动javabridge java -jar JavaBridge.jar SERVLET_LOCAL: 1.读取mpp文件 $file_path = " ...
- 如何通过Node.js启动cesium
设置一个Web服务器通过Node.js是很容易的,只需要3个步骤: (1)从安装Node.js网站,你可以使用默认安装设置. (2)打开命令行,然后进入Cesium的根目录,通过npm install ...
- 单例模式__new__
单例模式,使用__new__ __new__是构造函数, __init__是初始化方法,先调用了__new__返回了实例,__init__给这个实例初始化绑定一些属性. class Singleton ...