一道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’]
小結:
- 只有函數外定義的變量纔是全局變量,其它包括實參,缺省值都是本地變量。
- L = None,L是NoneType,此時不能執行append。
- 位置實參可替代缺省形參