1. 程式人生 > >Python函式中定義函式

Python函式中定義函式

在函式內部定義的函式要在函式內部呼叫

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