python 函数参数

 

  •   python基础(5):深入理解 python 中的赋值、引用、拷贝、作用域  https://my.oschina.net/leejun2005/blog/145911
  •   python 函数中,参数是传值,还是传引用? http://python.jobbole.com/87801/
  • # coding=gbk
    # 赋值的本质就是绑定
    # 默认参数的绑定只分配一次空间
    # 其他的每次绑定都会造出一个新的对象,分配新的空间
    # *************************************************************
    #                 [1] [1, 2]
    #
    #                 [1] [2]
    #
    #                 2 2
    #
    #                 2121627239816
    #                 2121627239112
    # *****************************************************************
    def add(elem, list=[]):
            """
            默认参数的绑定只分配了一次空间,所以每次add不指明list时,都添加到了同一个列表里面
            """
            list.append(elem)
            print(list, end=" ")
    add(1)
    add(2)
    print("\n")
    def add(elem, list=None):
            """
            其他的每次绑定都会造出一个新的对象,分配新的空间
            所以每次add不指明list时,都添加到了一个新的空list里面
            :param elem:
            :param list:
            :return:
            """
            if list == None:
                    list=[]
            list.append(elem)
            print(list, end=" ")
    add(1)
    add(2)
    
    print("\n")
    def add(elem, list=1):
            """
            python 里面的常量有一个常量表,不分配空间
            :param elem:
            :param list:
            :return:
            """
            list+=1
            print(list, end=" ")
    add(1)
    add(2)
    print("\n")
    
    # 其他的每次绑定都会造出一个新的对象,分配新的空间
    list = [1,2]
    print(id(list))
    list = [1,2]
    print(id(list))
posted on 2018-04-20 17:35  jkn1234  阅读(128)  评论(0编辑  收藏  举报