Python函数详细总结
def functionname( parameters ): "函数_文档字符串" function_suite return [expression]
可更改(mutable)与不可更改(immutable)对象
在 python 中,==strings, tuples, 和 numbers== 是不可更改的对象,而 ==list,dict== 等则是可以修改的对象。
不可变类型:可变类型:变量赋值 a=5 后再赋值 a=10,这里实际是新生成一个 int 值对象 10,再让 a 指向它,而 5 被丢弃,不是改变a的值,相当于新生成了a。
全局变量与局部变量变量赋值 la=[1,2,3,4] 后再赋值 la[2]=5 则是将 list la 的第三个元素值更改,本身la没有动,只是其内部的一部分值被修改了。
定义在函数内部的变量拥有一个局部作用域
定义在函数外的拥有全局作用域。
如果要把函数内部的变量声明为外部的全局作用域,使用global
声明
#可写函数说明def printme( str ): "打印任何传入的字符串" print str; return;prinme('My string')
关键字参数
#可写函数说明def printme( str ): "打印任何传入的字符串" print str; return;#调用printme函数printme( str = "My string");
缺省参数
#可写函数说明def printinfo( name, age = 35 ): "打印任何传入的字符串" print "Name: ", name; print "Age ", age; return;#调用printinfo函数printinfo( age=50, name="miki" );printinfo( name="miki" );
不定长参数
传入列表时,加入一个星号
传入字典时,加入两个星号
# 可写函数说明def printinfo( arg1, *vartuple ): "打印任何传入的参数" print "输出: " print arg1 for var in vartuple: print var return;# 调用printinfo 函数printinfo( 10 );printinfo( 70, 60, 50 );
匿名参数lambdalambda只是一个表达式,函数体比def简单很多。lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
lambda函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的参数。虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。
语法lambda [arg1 [,arg2,.....argn]]:expression# 可写函数说明sum = lambda arg1, arg2: arg1 + arg2;# 调用sum函数print "相加后的值为 : ", sum( 10, 20 )
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。