1.引用:其实就是地址引用
可以使用id()函数来查看变量的地址
a = 10
print(id(a))结果为1534531351
getrefcount()函数查看引用次数
print(getrefcount(a))#结果为2次,第一次是创建赋值,第二次是调用getrefcount()函数
2.函数引用
1)不可变类型引用
def test_1(n1): for i in range(n1): print(i) n1 += 1 test(5)结果为1 2 3 4 5#外面的n不会因为函数里面的改变而改变
2)可变类型
def test_1(l): for i in range(l): print(i) l.append(0,8) list = [1,2,3] test(list)结果为8 1 2 3
3.函数嵌套
1)函数嵌套就是一个函数里面嵌套另外一个函数 def outer(): a = 10 def inner(): b = 20 print(‘我是内部函数‘,b) inner() outer()#结果为我是内部函数 20
2)在内部函数里面引用外部函数参数
def outer(): a = 10 def inner(): b = 20 b += a print(‘我是内部函数‘,b) inner() outer()#结果为我是内部函数 30
3)在内部函数修改外部函数的值
def outer(): a = 10 def inner(): nonlocals a #通过声明nonlocals关键字来修饰 b = 20 a += b print(‘我是内部函数‘,a) inner() outer()#结果为我是内部函数 30