函数定义
函数代码块以 def 关键词开头, 后接函数标识符名称和圆括号()
任何传入参数和自变量必须放在圆括号中间圆括号之间可以用于定义参数
函数的第一行语句可以选择性地使用文档字符串用于存放函数说明
函数内容以冒号起始, 并且缩进
return [表达式] 结束函数, 选择性地返回一个值给调用方不带表达式的 return 相当于返回 None
- def functionname( parameters ):
- "函数_文档字符串"
- function_suite
- return [expression]
函数调用: 直接写函数名字(参数)
- def printtest(str):
- print(str)
- return
- printtest(aa)
可更改 (mutable) 与不可更改 (immutable) 对象
可更改: 列表和字典
不可更改: strings, tuples, 和 numbers 是不可更改的对象
python 中一切都是对象, 严格意义我们不能说值传递还是引用传递, 我们应该说传不可变对象和传可变对象
传不可变对象实例
- #!/usr/bin/python
- def ChangeInt( a ):
- a = 10
- b = 2
- ChangeInt(b)
- print b # 结果是 2
传可变对象实例
- #!/usr/bin/python
- def changeme( mylist ):
- "修改传入的列表"
- mylist.append([1,2,3,4]);
- print "函数内取值:", mylist
- return
- mylist = [10,20,30];
- changeme( mylist );
- print "函数外取值:", mylist
输出结果
函数内取值: [10, 20, 30, [1, 2, 3, 4]]
函数外取值: [10, 20, 30, [1, 2, 3, 4]]
参数:
必备参数: 必备参数须以正确的顺序传入函数调用时的数量必须和声明时的一样
调用 printme()函数, 你必须传入一个参数, 不然会出现语法错误
关键字参数
- #!/usr/bin/python
- # 可写函数说明
- def printme( str ):
- "打印任何传入的字符串"
- print str;
- return;
- # 调用 printme 函数
- printme( str = "My string");
缺省参数
调用函数时, 缺省参数的值如果没有传入, 则被认为是默认值
- #!/usr/bin/python
- # 可写函数说明
- def printinfo( name, age = 35 ):
- "打印任何传入的字符串"
- print "Name:", name;
- print "Age", age;
- return;
- # 调用 printinfo 函数
- printinfo( age=50, name="miki" );
- printinfo( name="miki" );
不定长参数
你可能需要一个函数能处理比当初声明时更多的参数这些参数叫做不定长参数, 和上述 2 种参数不同, 声明时不会命名
- #!/usr/bin/python
- def printinfo( arg1, *vartuple ):
- "打印任何传入的参数"
- print "输出:"
- print arg1
- for var in vartuple:
- print var
- return;
- printinfo( 10 );
- printinfo( 70, 60, 50 );
return 语句
return 语句 [表达式] 退出函数, 选择性地向调用方返回一个表达式不带参数值的 return 语句返回 None
- def sum( arg1, arg2 ):
- total = arg1 + arg2
- print "函数内 :", total
- return total;
- total = sum( 10, 20 );
来源: http://www.bubuko.com/infodetail-2492446.html