python自动化--函数(对象,嵌套,名称空间与作用域)
函数(对象)
函数是第一对象:函数可以当做数据来使用,
x=10
可以被引用
y=x
可以当做参数传入一个函数
def foo(m):
print(m)
foo(x)
可以当做函数的返回值
def bar():
return x
print(bar())
可以当做容器类型的
print([x,1,2])
下面一个实例 模拟用户进入数据库中查找表的命令。
执行结果如下:
函数(嵌套)
1,函数的嵌套调用:在调用一个函数的过程中,又调用其他的函数。
2,函数的嵌套定义:在定义一个函数内部,又定义了一个函数。
函数(名称空间与函数域)
名称空间:存放名字与值的绑定关系的地方。
内置名称空间:
存放的是 内置的名字与值的绑定关系
生效 python解释器启动
失效 python解释器关闭
全局名称空间:
存放的是 文件级别定义的名字与值的绑定关系
生效 执行python文件时,以该文件级别定义的名字与值的绑定关系存放起来
失效 文件执行完毕
局部名称空间:
存放的是 函数内部定义的名字与值的绑定关系
生效 调用函数是,临时生效。
失效 函数调用结束了,失效。
加载顺序 先内置 再全局 最后局部
查找名字的顺序:先局部,再全局,最后内置
举一个查找名字的例子:
作用域:
全局作用域:包含内置名称空间的名字与全局名称空间的名字
全局存活,全局有效。
局部作用域:包含局部名称空间的名字
临时存活,局部有效。
作用域关系,在函数定义时,就已经固定了,与调用位置无关
下面的例子是打破层级限制。
俩个变量的使用案例