美文网首页
晚上学到的一些重要 python 知识

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

作者: 月牙眼的楼下小黑 | 来源:发表于2019-02-22 23:06 被阅读32次

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

    • [1] pythonC++ 中的变量、对象和引用的联系和区别。(参考)

    • [2] listarray 切片操作的区别, 解答了我去年遗留下来的问题(参考).

    • [3] python 中的可变对象和不可变对象。(参考)

    • [4] 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)
    声 明: 欢迎转载本文中的图片或文字,请说明出处


    相关文章

      网友评论

          本文标题:晚上学到的一些重要 python 知识

          本文链接:https://www.haomeiwen.com/subject/yfgyyqtx.html