python函数变量和返回值

函数变量

函数变量分为局部变量和全局变量。任何变量都有特定作用域。
在函数中定义的变量一般只能在该函数内部使用,属于局部变量。

在一个文件顶部定义的变量可以供文件中的任何函数调用,属于全局变量。

变量作用域

全局变量在函数内部只能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
3
hello world!
abc
None

return和print的区别

1
2
3
4
5
6
7
8
9
10
11
12
13
#!/usr/bin/python

import sys
import os

def isNum(s):
if s.isdigit():
return True
return False

for i in os.listdir('/proc'):
if isNum(i):
print i

多类型传值

1
2
def fun(x, y, z):
return x + y + z

传入元组

1
2
3
t = (1,2,3)
fun(*t)
fun(2,*t)

传入字典

1
2
dic = {‘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
3
1
(2, 'a', [1, 2], 'c', 'd')
{'a': 3, 'b': 11}

Recommended Posts