引用和函数引用,闭包,装饰器以及递归

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

 

引用和函数引用,闭包,装饰器以及递归

上一篇:Journey to Un'Goro 题解(思维+剪枝搜索)


下一篇:知识【inline】