1、全域性變數和區域性變數、上一級變數、
(1)全域性變數特點:頂格寫的,沒有縮排,在任意位置都可以呼叫。
(2)區域性變數特點:在任意乙個子程式(函式)裡定義的,只在該子程式(函式)內生效。
(3)可以在乙個程式中存在相同名稱的區域性變數和全域性變數,這樣的話,在**列印則輸出哪個變數。示例如下:
name =
"zhm"
def test()
: name =
"lll"
print
(name)
test()
print
(name)
#輸出結果:
lllzhm
(4)如果想直接在子程式裡修改全域性變數,應該加關鍵字global,如下:
name =
"zhm"
def test()
: global name
name =
"lll"
print
(name)
test()
print
(name)
#輸出結果:
llllll
(5)由於程式從上到下執行,所以上面的程式修改全域性變數後,下面引用的全域性變數也跟著修改。
name =
"zhm"
def test1()
: global name
name =
"lll"
print
(name)
def test2()
:print
(name)
test1()
test2()
#輸出結果:
llllll
換一下執行順序就會不一樣,如下:
name =
"zhm"
def test1()
: global name
name =
"lll"
print
(name)
def test2()
:print
(name)
test2()
test1()
#輸出結果:
zhmlll
(6)先找自己的作用域(偷懶方法:可以看空格),沒有引用全域性;修改全域性則用global;如果全域性是可變型別,可以直接使用對應方法,對內部元素進行操作。如下:
name =
["ooo"
,"lll"
]def test()
: global name
name.
("zhm"
)print
(name)
test()
#輸出結果:
['ooo'
,'lll'
,'zhm'
]
2、函式巢狀
(1)**預設執行順序:從上到下
巢狀函式執行順序:先執行外迴圈,再執行內迴圈
def outer()
: def inner()
:print
('inner'
)print
('outer'
)inner()
outer()
print
("ooo"
)#輸出結果:
outer
inner
ooo
備註:但是好像為了避免不必要的麻煩,一般直接呼叫,不用函式巢狀
def inner()
:print
('inner'
)def outer()
:inner()
print
('outer'
)outer()
#輸出結果:
inner
outer
(2)先定義後執行,未定義執行會報錯。
def test1()
:print
("test1"
)test2
() #由於在這之前未定義過test2()
test1()
def test2()
:print
("test2"
)#輸出結果:
報錯
3、關於函式名
(1)函式名可以進行賦值
def test()
:print
("123"
)new_test = test
new_test()
#輸出結果:
123
4、閉包函式特點
1、是巢狀函式
2、返回乙個呼叫外部變數的函式物件
舉例如下:
def outer()
: name=
"python"
def inner()
:print
(name)
print
(inner.__closure__)
return inner
inn =
outer()
inn(
)#輸出結果:
(: str object at 0x0000021b748f5670
>,)
python
Sass變數及巢狀
注意 變數可以在css規則塊定義之外存在。如下例子 n color f90 n 編譯後 n n color這個變數定義在了規則塊外邊,所以在這個樣式表中都可以像n 規則塊那樣引用它。width這個變數定義在了n 的規則塊內,所以它只能在n 規則塊 內使用。這意味著是你可以在樣式表的其他地方定義和使用...
python 函式巢狀及作用域
函式可以巢狀嗎?當然可以 我們可以看到,外部函式outer func 的函式體中巢狀了乙個函式inner func 並且outer func 體中 還呼叫了內部函式inner func 所以每當呼叫outer func 的時候,都會呼叫一次inner func 我 們來看一下列印結果 我們可以看到,...
python全域性變數 區域性變數 巢狀函式
全域性變數在呼叫的function中是不允許被直接修改的。修改方法 在全域性變數前加global 關鍵字 如 修改text這個全域性變數,方法 global text 對於在呼叫函式中修改區域性變數的,但輸出區域性變數還是原值的原因 是函式在棧中建立了乙個與全域性變數同名的區域性變數,值作用於當前修...