一、變數的作用域
python的作用域一共有4種,分別是:
l (local) 區域性作用域
e (enclosing) 閉包函式外的函式中
g (global) 全域性作用域
b (built-in) 內建作用域
以 l –> e –> g –>b 的規則查詢,即:在區域性找不到,便會去區域性外的區域性找(例如閉包),再找不到就會去全域性找,再者去內建中找。
#內建作用域
a = int(3.2)
#全域性作用域
b = 0
def outer():
#閉包函式外的函式中
c = 10
def inner():
#區域性作用域
d = 100
python 中只有模組(module),類(class)以及函式(def、lambda)才會引入新的作用域,其它的**塊(如 if/elif/else、try/except、for/while等)是不會引入新的作用域的,也就是說這些語句內定義的變數,外部也可以訪問
二、全域性變數和區域性變數
定義在函式內部的變數擁有乙個區域性作用域,定義在函式外的擁有全域性作用域。
區域性變數只能在其被宣告的函式內部訪問,而全域性變數可以在整個程式範圍內訪問。
例:a = 0 #全域性變數
def demo():
b = 10 #區域性變數
三、global 和 nonlocal關鍵字
當內部作用域想修改外部作用域的變數時,就要用到global和nonlocal關鍵字了。
例:a = 0
def demo():
global a #使用global關鍵字宣告
print(a)
a = 100 #修改a的值
print(a)
demo()
輸出結果如下:
0100
如果要修改巢狀作用域(enclosing 作用域,外層非全域性作用域)中的變數則需要 nonlocal 關鍵字了
例:def outer():
a = 0
def inner():
nonlocal a #使用nonlocal關鍵字宣告
print(a) #輸出修改之前的值
a = 100 #修改a的值
print(a) #輸出修改後的值
inner() #呼叫內部函式
print(a) #輸出呼叫內部函式後,外部函式中a的值
outer()
輸出結果如下:
0100
100
Python3學習筆記
最近在起步學python,聚合一下這個過程中蒐集的資源和對一些基本知識做個小總結,語法基於python3,方便以後查詢。python官方文件 不錯的基礎課程 基本語法 演算法 建模 練習 以下是整理常用可能遺忘的基礎點 python3中的輸入是input 獲得使用者輸入的字串 a input ple...
python3學習筆記
redis訊息佇列的使用 coding utf 8 created on tue mar 26 15 58 34 2019 author admin import redis class redisqueue object def init self,name,namespace queue red...
python3 學習筆記
python3學習筆記 python基礎 輸出 print 括號中加上想要輸出的資料,就可以將指定內容輸出至螢幕。1.輸出的時候要注意資料型別。字串,整數等等 2.括號中可以包含多個字串,使用逗號隔開就可以了。但是每次輸出遇到這個連線逗號的時候都會輸出乙個空格。3.括號中的內容也可以是變數名和計算公...