欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python学习--嵌套函数、局部(全局)变量

程序员文章站 2024-01-15 20:01:10
...

一、嵌套函数
函数调用:在一个函数中调用另外一个函数。

def i_nest():
    print('Python')
def o_nest(f):
    f()
o_nest(i_nest)
>>>Python

内部函数里面含有输出字符’Python’的语句。
python中,函数即为一个对象,在定义一个函数的时候,参数可以引用任何一个对象,也就可以调用其他的函数。

###调用abs
def opt_seq(func,seq)
		r = [func(i) for i in seq]
		return r
opt_seq(abs,range(-3,3))
[3,2,1,0,1,2]

定义的函数参数func,引用求绝对值abs函数,求取range(-3,3)内的序列绝对值。
函数嵌套:在一个函数中套用另外一个函数。

def o_nest():
    def i_nest():
        print('Python')
    return i_nest
a =o_nest()
a
a()

函数i_nest()套用在o_nest()里面。
进行a =o_nest()运算后,返回i_nest值为a(白色框)。单步调试可看:python学习--嵌套函数、局部(全局)变量
内层函数为i_nest(),而不是i_nest,所有在第7行并不执行输出‘python’操作。
python学习--嵌套函数、局部(全局)变量
python学习--嵌套函数、局部(全局)变量
python学习--嵌套函数、局部(全局)变量
作用域:一个标识符的可见范围,这就是标识符的作用域。一般常说的是变量的作用域。即若i_nest()函数内有变量,仅仅在i_nest()函数内部使用。若想别处使用,需声明全局变量。
全局变量:在整个程序运行环境中都可见、可用;
局部变量:在函数、类等内部可见、可用。

### 局部变量
a = 1
def f1():
	 print(a+1)

def f2():
	a=a+1
	print(a)

f1()
f2()

f1() —>输出2
f2() —>输出local variable ‘a’ referenced before assignment 未声明a的值。

### 全局变量
a = 1
def f1():
	 print(a+1)

def f2():
	global a
	a=a+1
	print(a)

f1()
f2()

f1() —>输出2
f2() —>输出3

相关标签: Python