函数也是对象
定义函数时建立对象,调用函数时可以反复调用对象
变量的作用域(全局变量和局部变量)
全局变量
1、在函数和类定义之外声明的变量
2、作用域为定义的模块,从定义位置开始知道模块结束
3、全局变量降低了函数的通用性和可读性,应尽量避免全局变量的使用
4、全局变量一般作常量使用
5、函数内要改变全局变量的值,使用global声明一下
局部变量
1、在函数体中(包括形式参数)声明的变量
2、局部变量的引用比全局变量快,优先考虑使用
3、如果局部变量和全局变量同名,则在函数内部隐藏全局变量,只使用同名的局部变量
a = 100
def f1():
global a
a = 300
print(a)
print(a)
f1()
运行结果为:
100
300
a = 100
def f1():
global a
a = 300
print(a)
f1()
print(a)
运行结果为:
300
300
参数的传递
1、函数的参数传递本质上是从实参到形参的赋值操作
2、Python中参数的传递都是引用传递(传递地址),不是值传递
3、具体操作分为两类:
①对“可变对象”进行“写操作”,直接作用于原对象本身
②对“不可变对象”进行“写操作”,会产生一个新的“对象空间”,并用新的值填充这块空间
传递可变对象的引用
a = [