今天学了python函数调用 跟Java的差不多
def printme(str): "打印任何传入的字符串" print(str) return # 调用函数 printme("我要调用用户自定义函数!") printme("再次调用同一函数")
首先先定义一个函数
def 函数名(变量):
return //结束函数
然后调用
传不可变对象实例
#!/usr/bin/python # -*- coding: UTF-8 -*- def ChangeInt(a): a = 10 print(a) b = 2 ChangeInt(b) print (b)
这里调用changeInt()函数 ,这个函数里的值是确定的。传个其他值不改变本来值的结果
传可变对象实例
#!/usr/bin/python # -*- coding: UTF-8 -*- # 可写函数说明 def changeme(mylist): "修改传入的列表" mylist.append([1, 2, 3, 4]) print("函数内取值: ", mylist) return # 调用changeme函数 mylist = [10, 20, 30] changeme(mylist) print("函数外取值: ", mylist)
mylist.append 是添加列表元素
#!/usr/bin/python # -*- coding: UTF-8 -*- # 可写函数说明 def printinfo(name, age): "打印任何传入的字符串" print("Name: ", name) print("Age ", age) return # 调用printinfo函数 printinfo(age=50, name="miki") printinfo("name",1)
两种调用函数 都可以
不定长参数
加了星号(*)的变量名会存放所有未命名的变量参数
#!/usr/bin/python # -*- coding: UTF-8 -*- # 可写函数说明 def printinfo( arg1, *vartuple ): "打印任何传入的参数" print "输出: " print arg1 for var in vartuple: print var return # 调用printinfo 函数 printinfo( 10 ) printinfo( 70, 60, 50 )
这里就是for 循环将*vartuple循环的输出出来
匿名函数
就是
lambda [arg1 [,arg2,.....argn]]:expression
这种结构的 agr是变量 :后面是表达式
调用的话lambda相当于函数名