Python11
来源:互联网 发布:basic和vb 编辑:程序博客网 时间:2024/06/15 16:55
函数
def
def用来创建函数,其中标题行由def关键字,函数名和参数组成,def子句剩余部分包括一个可选的文档子串和必需的函数体。
def func_name(args): "function document" func_body
装饰器
装饰器指函数,它们接受函数对象,具体还是看例子吧,简单明了
@decoTwo@decoOnedef func(args1,...): pass#上面等价于def func(args1,...):pass#func = decoTwo(decoOne(func))#以下是带参数的@deco(args) # deco()用args做了操作并返回函数对象,返回的函数对象以func作为其参数的装饰器def func(): pass#等价func=deco(args)(func)
参数
python支持默认参数与可变长参数,其中可变长的参数元祖要在位置和默认参数之后,带元组的函数用法如下:
def func([args,] *args_tuple): func_body
星号操作符之后的形参作为元组传递给函数,元组保存了所有传递给函数的额外参数,如果没有则元祖为空。在正常情况下如果函数调用与函数定义的参数不匹配会产生TypeError的异常,通过末尾增加一个可变的参数列表可以处理超出数目的参数,这些超出数目的参数会被添加到参数元组,对于不定数目或者额外集合的关键字,参数被放入一个字典中,同时为了区分关键字和非关键字非正式参数,使用了(**)。
>>> def func(arg1,arg2="default",*nc,**nk):... print("arg1:%s" %(arg1))... print("arg2:%s" %(arg2))... for each in nc:... print("arg3:%s"%(each))... for key in nk.keys():... print("arg4:%s:%s" %(key,nk[key]))...>>> func("A")arg1:Aarg2:default>>> func("A","selfParam")arg1:Aarg2:selfParam>>> func("A","selfPram","B","C",name="python",study="yes")arg1:Aarg2:selfPramarg3:Barg3:Carg4:name:pythonarg4:study:yes
函数式编程
lambda:用于创建匿名函数,一个完整的lambda语句代表一个表达式,这个表达式的定义体要和声明放在一行,参数是可选的,如果使用参数,则参数通常是表达式的一部分,lambda主要用于返回可调用的函数对象,这有点类似一个函数的单行版本,起初刚准备下结论与C++的内联类似,但看了书中下一句就发现自己想多了~~,lambda语句的目的是由于性能原因,在调用时绕过函数的栈分配,创建了一个框架对象。
lambda [arg1[,arg2,...argN]]:expression
例:
>>> a=lambda x,y=10:x+y>>> a(20)30>>> a(20,30)50>>> b=lambda *z:z>>> b(23,'adf')(23, 'adf')>>> b()()>>> b('adsf')('adsf',)
global
将全局变量的名字声明在一个函数体内的时候,全局变量的名字会被局部变量覆盖,因此为了明确使用一个已命名的全局变量,可以在函数体内用global声明全局变量而无须建立新的局部变量。
0 0
- Python11
- python11:函数
- python11 一些问题
- python11模块与包
- Python11--面向对象2
- PAT甲级1009. Product of Polynomials (25)
- Java集合HashMap源码
- Win10 Mobile For MI4体验
- SKlear中的LabelEncoding和OneHotEncoding
- git基本命令
- Python11
- 忘记密码解决,Win7 Administrator账号密码忘记 解决办法
- 用仿真器解决Linux内核加载问题
- 黑科技 —— Type-C 接口与 USB3.1
- Linux内核分析 实验1
- Codeforces Round #401 (Div. 2) B. Game of Credit Cards
- 游戏开发中常用的设计模式
- C语言中,整型变量x小于0,是否可知x*2也小于0
- ubuntu开机启动Mongo脚本以及使用root权限执行的脚本(快捷方式)