1,函数的变量
2,函数的返回值
1,函数的变量
函数的变量分为局部变量和全局变量。
def fun(): x = 100 print x
这个x是局部变量,函数执行完后,x的变量就会销毁,只能在函数内部有效。
x = 100 def fun(): print x print x
这里的x = 100‘是全局变量,函数内部也可以调用。但是调用的只能用于print,做其他操作都会报错。比如:
x = 100 def fun(): print x x+=1
像这个执行了 x+=1 的动作就会报错。
当然,可以通过global关键字在函数内部声明为全局变量,这样声明后,就可以做其他操作。
x = 100 def fun(): global x x +=1 print x
1.1,在函数内部定义的变量在函数外部也可以使用,也使用关键字global关键字。
def fun(): global y y = 1 fun() print y
这样y也就可以输出了,但前提条件是你必须先调用函数。
1.2,函数locals,输出脚本执行中有哪些变量。如果写到函数内部,返回的则是函数内部的所有变量。如果是写的是程序里面,则输出的程序所有的变量。
def fun(): x = 1 y = 2 print locals()
查看程序的所有变量,以字典形式输出。
#!/usr/bin/env python print ‘hello,world‘ pritn locals()
2,函数返回值(return)
函数如果默认没有return语句,则函数默认return None.函数遇到return结束运行。
def test(): print ‘test‘ print test()
上述代码返回:test和None.为什么会有None呢?因为函数如果没有retun语句,默认会return None。
def test2(var): if str(var).isdigit(): return ‘this is number‘ return ‘thisi is not number‘ test2(1)
可以发现,if 后面没用else。上面写到了,执行到return的时候代码,函数就会停止运行。所以只要上面的if执行了,后面的return就不会执行。
小结:
1,变量分为全局变量和局部变量。如果定义一个全局变量,函数内部如果调用这个局部变量,只能使用print 的关键字输出(换句话说函数内部其实是知道全局变量的,只是不能操作全局变量),所以如果你在函数内部
使用global 关键字,就是在告诉程序,我要操作全局变量了。此时,函数才可以正式的操作全局变量。
2,局部定义的变量如果想变为全局变量,可以使用global关键字。这样这个局部变量就可以称为全局变量了,但前提条件是你要执行该函数。