1、局部變量
1
2
3
4
5
6
7
|
name = "Yang Li" def change_name(name): print ( "before change:" ,name) name = "你好" print ( "after change" , name) change_name(name) print ( "在外面看看name改了么?" ,name) |
輸出:
before change: Yang Li
after change 你好
在外面看看name改了么? Yang Li
2、全局變量
1
2
3
4
5
6
7
8
9
10
11
12
13
|
NAME = "alex" def yangjian(): global NAME # 已經聲明,NAME就是全局的的那個變量 print ( '1我的名字' , NAME) NAME = "land" # 修改 全局的變量 print ( '2我的名字' , NAME) def qupengfei(): name = "yang" print ( '3我的名字' , NAME) yangjian() qupengfei() |
輸出:
1
2
3
4
5
6
7
|
1我的名字 alex 2我的名字 land 3我的名字 yang ######## 全局變量變量名大寫 ######## 局部變量變量名小寫 #函數中 優先讀取局部變量,能讀取全局變量,無法對全局變量重新賦值;但是對于可變類型,可以對內部元素進行操作;如果函數中有global關鍵字,變量本質上就是全局的那個變量,可讀取可賦值 |
3、nonlocal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
name = "剛娘" def weihou(): name = "陳卓" def weiweihou(): nonlocal name # nonlocal,指定上一級變量,如果沒有就繼續往上直到找到為止 name = "冷靜" print (name) weiweihou() print (name) print (name) weihou() print (name) # 剛娘 # 陳卓 # 陳卓 # 剛娘 |
全局與局部變量
在子程序中定義的變量稱為局部變量,在程序的一開始定義的變量稱為全局變量。
全局變量作用域是整個程序,局部變量作用域是定義該變量的子程序。
當全局變量與局部變量同名時:
在定義局部變量的子程序內,局部變量起作用;在其它地方全局變量起作用。
函數返回值
要想獲取函數的執行結果,就可以用return語句把結果返回
注意:
函數在執行過程中只要遇到return語句,就會停止執行并返回結果,so 也可以理解為 return 語句代表著函數的結束
如果未在函數中指定return,那這個函數的返回值為None
嵌套函數
1
2
3
4
5
6
7
8
9
10
|
name = "Alex" def change_name(): name = "Alex2" def change_name2(): name = "Alex3" print ( "第3層打印" ,name) change_name2() #調用內層函數 print ( "第2層打印" ,name) change_name() print ( "最外層打印" ,name) |
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。
原文鏈接:https://www.cnblogs.com/Yangyl00/p/13184956.html