Python函式的巢狀呼叫
阿新 • • 發佈:2020-12-19
技術標籤:【Python學習專區】你不可錯過精彩內容Python函式python程式語言
函式的巢狀呼叫
函式內部,呼叫其他函式。
呼叫之後,又將程式控制權返回給呼叫者,接著繼續執行。
程式例項1:
def create_building():
create_room()
create_stair()
def create_room():
print('開始建立房間')
print('正在建立房間')
print('建立房間完成')
def create_stair():
print('開始建立電梯')
print('正在建立電梯' )
print('建立電梯完成')
create_building()
函式內部,定義了新的函式。
函式內部定義的函式,只有函式內部才能呼叫它。
程式例項2:
def test1():
print("test1()開始執行")
def test2():
print("test2()開始執行")
test2()
test1()
函式內部定義的函式,如果外部呼叫的時候,會報錯。
程式例項3:
def test1():
print("test1()開始執行")
def test2 ():
print("test2()開始執行")
test2()
提示:NameError: name ‘test2’ is not defined
函式內部的變數和外部的變數,類似於區域性變數和全域性變數的關係。
程式例項4:
def test1():
a= 10
print("test1()開始執行")
print(f"test1()內部變數a的值是{a}")
def test2():
a = 100
print("test2()開始執行" )
print(f"test2()內部變數a的值是{a}")
test2()
test1()
那麼在test2()函式內部要去修改外部test1()函式內部的變數a,怎麼辦呢?
答案是,不是用golbal關鍵字,而是用nonlocal關鍵字。
程式例項5:
def test1():
a= 10
print("test1()開始執行")
print(f"test1()內部變數a的值是{a}")
def test2():
nonlocal a
print("test2()開始執行")
print(f"test2()內部變數a的值是{a}")
test2()
test1()