首页 > 其他 > 详细

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

时间:2021-07-24 00:12:25      阅读:20      评论:0      收藏:0      [点我收藏+]

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

 

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

原文:https://www.cnblogs.com/kzf-99/p/15053986.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!