zoukankan      html  css  js  c++  java
  • python的默认参数

    python的默认参数

    python可以使用变量作为默认参数,但是该变量必须在函数定义之前就已经声明。比如

    i = 1
    def func( _i = i ):
    	print(_i)
    func()	#1
    

    同时,对于python,默认参数在函数定义的时候就已经计算好了

    def func( list=[] ):
        list.append('a')
        print(list)
    
    func()	#['a']
    func(['b'])	#['b','a']
    func()	#['a','a']
    

    可以发现第1次和第3次执行func都是针对同一个list(默认list),这是因为默认参数在函数定义时就已经计算出来,且这个计算只进行了一次,就算第3次调用func用的还是默认的list。第2次参数不是默认的list,但是它不影响默认值的状态。

    再看看闭包,这里的list对于每一个inner是独一份的。一个闭包一份环境

    def outer():
        list = []
        def inner():
            list.append('a')
            print(list)
        return inner()   
    
    outer()
    outer()
    
  • 相关阅读:
    【题解】小Z的袜子
    浅谈最小生成树
    【题解】钻石收藏家
    浅谈线段树
    浅谈拓扑排序
    浅谈树的直径和树的重心
    浅谈求逆序对
    浅谈欧拉回路
    浅谈离散化
    浅谈高斯消元
  • 原文地址:https://www.cnblogs.com/friedCoder/p/12710542.html
Copyright © 2011-2022 走看看