函数变量
函数变量分为局部变量和全局变量。任何变量都有特定作用域。
在函数中定义的变量一般只能在该函数内部使用,属于局部变量。
在一个文件顶部定义的变量可以供文件中的任何函数调用,属于全局变量。
变量作用域
全局变量在函数内部只能print,不可进行操作;局部变量在函数外部不可见;使用global关键字声明为全局变量,则可以进行操作或者外部使用。1
2
3
4
5
6
7
8
9
10
11
12#!/usr/bin/python
x = 100
def fun():
global x
x += 1
global y
y = 1
fun()
print x
print y
此处x为全局变量,若不进行global声明,x += 1报错;y为局部变量,若不进行global声明,print y报错。
locals()函数
返回一个字典,字典内容为当前可见的变量。
函数返回值
函数被调用后会返回一个特定的值;函数调用后默认返回None
。
使用方式
1 | return 返回值 |
返回值可以是任何类型。
return执行后,函数终止。1
2
3
4
5
6
7#!/usr/bin/python
def fun():
print "hello world!"
print "abc"
print fun()
输出结果1
2
3hello world!
abc
None
return和print的区别
1 | #!/usr/bin/python |
多类型传值
1 | def fun(x, y, z): |
传入元组1
2
3t = (1,2,3)
fun(*t)
fun(2,*t)
传入字典1
2dic = {‘x’:1,.’y’:3,’z’:5}
fun(**dic)
冗余参数
命名参数
多余参数存到元组
默认参数存到字典1
2
3
4
5
6
7
8#!/usr/bin/python
t = ('c','d')
def fun(x,*args,**kwargs):
print x
print args
print kwargs
fun(1,2,'a',[1,2,],*t,a=3,**{'b':11})
输出结果1
2
31
(2, 'a', [1, 2], 'c', 'd')
{'a': 3, 'b': 11}