Python函式中定義函式
阿新 • • 發佈:2018-12-17
在函式內部定義的函式要在函式內部呼叫
def paint():
print("paint")
def paintA():
print("paintA")
paintA()
paint()
//輸出如下:
//paint
//paintA
在函式外部呼叫函式的結果如下
paintA //試圖在函式外部呼叫paintA() //以下是報錯資訊 --------------------------------------------------------------------------- NameError Traceback (most recent call last) <ipython-input-15-1a59d6e3eeb5> in <module>() 5 paintA() 6 paint() ----> 7 paintA NameError: name 'paintA' is not defined
函式內的函式可以引用外部變數,但是不可以對其進行修改
a=6
def FuncX(x):
def FuncY(y):
return a*y
// return x*y,這裡也可以寫這條語句進行測試,因為對於FuncY()來說,x也算外部變數,我這裡主要是為了突出外部變數這個概念
return FuncY
FuncX(5)(6)//把5賦給x,6賦給y
//輸出結果如下:
36
試圖對外部變數進行修改
a=6 def FuncX(x): def FuncY(y): #nonlocal a 加上這條語句即可修改a的值 return a=a*y#試圖修改 a 的值 return FuncY FuncX(5)(6) //報錯資訊 File "<ipython-input-24-c9e602464caf>", line 4 return a=a*y ^ SyntaxError: invalid syntax #可以很明顯的看到,錯誤資訊對準了賦值運算子
函式怎麼修改外部變數的值的說明
對於全域性變數的修改,如果全域性變數是int或者str,那麼如果想要在函式中對函式變數進行修改,則需要先在函式內,宣告其為global或nonlocal,在進行修改, 如果是list或者dict則可以直接修改
表明轉載來源是對作者的一種尊重
轉載來源:https://blog.csdn.net/ChangerJJLee/article/details/52598629 作者:AngelovLee