一道Python题的解析

一道Python题的解析

此题出得比较tricky,涉及一些Python基本概念,包括变量作用域,列表初始化,实参传值等,如果基本功不扎实,很容易出错。

def add_Run(L=None): #定义函数add_Run,指定一个缺省参数L=None
    if L is None:#如果L = None,则重新初始化L为[]
        L = []
    L.append('Run')
    return L
add_Run()
add_Run()#L是局部变量
print(add_Run(['Lying']))#实参['Lying']等效于L=['Lying']

运行结果:
[‘Lying’, ‘Run’]
小结:

  1. 只有函数外定义的变量才是全局变量,其它包括实参,缺省值都是本地变量。
  2. L = None,L是NoneType,此时不能执行append。
  3. 位置实参可替代缺省形参

你可能感兴趣的:(Python)