晚上学到的一些重要 python 知识

2019-02-22  本文已影响32人  月牙眼的楼下小黑

今晚收获挺大,学到了不少非常重要的 python 语法知识,一定程度上解答了我去年遗留的几个问题, 这种郁结一旦被打开,心情就非常舒畅.

直觉上这个知识点可能会解答我去年遗留的另一个问题.


上述知识点当然不是我闲得蛋疼收集的, 而是出于一个目的:我设计了一个简单的递归函数,想用一个变量对函数调用次数进行计数.

用全局变量的方法可以参考知乎回答: 戳我

我想用函数参数传递的方式来共享这个计数值. 下面是我一些 toy code:

# 用不可变对象做计数值("值传递")
def fib(n, count):
    count += 1 
    print(id(count))
    print(count)
    if n==0:
        return 0
    else:
        return fib(n-1, count) 

count = 0
fib(5,count)
print('-------------')
print(count)


#out:
10919424
1
10919456
2
10919488
3
10919520
4
10919552
5
10919584
6
-------------
0

# 用可变对象做计数值("引用传递")
def fib(n, count):
    count[0] += 1 
    print(id(count))
    print(count[0])
    if n==0:
        return 0
    else:
        return fib(n-1, count) 
count = [0]
fib(5,count)
print('--------------')
print(count)


#out:
139628045793672
1
139628045793672
2
139628045793672
3
139628045793672
4
139628045793672
5
139628045793672
6
--------------
[6]


作 者: 月牙眼的楼下小黑
联 系: zhanglf_tmac (Wechat)
声 明: 欢迎转载本文中的图片或文字,请说明出处


上一篇 下一篇

猜你喜欢

热点阅读