13 命名空間和作用域

2021-10-02 18:10:11 字數 2013 閱讀 4881

globals() 返回當前全域性作用域內變數的字典

locals() 返回當前區域性作用域內的變數的字典

#此示例示意globals()函式和locals()函式的用法

a = 1

b = 2

c = 3

def fx(c,d):

e = 300

#此處有幾個區域性變數?

print("locals()返回",locals())

#有幾個全域性變數?

print("globals()返回",globals())

fx(100,200)

執行結果:

locals()返回

globals()返回 , '__builtins__': , '__file__': 'c:\\users\\administrator\\documents\\aptana studio 3 workspace\\demo12\\123.py', '__cached__': none, 'a': 1, 'b': 2, 'c': 3, 'fx': }

#此示例示意globals宣告

v = 100

def fn():

#新增全域性宣告,本函式內變數v程式設計全域性變數

global v

v = 200

fn()

print(v)

執行結果:

200

#nonlocal使用

var = 100

def f1():

var = 200

print("f1裡面的var=",var)

def f2():

nonlocal var

var = 300

f2()

print("f1呼叫結束時var=",var)

f1()

print("全域性的var=",var)

執行結果:

f1裡面的var= 200

f1呼叫結束時var= 300

全域性的var= 100

python的四個作用域legb作用域英文解釋英文縮寫

區域性作用域(函式內)

local(function)

l

外部巢狀函式作用域

enclosing function locals

e

函式定義所在模組(檔案)的作用

globals(module)

g

python內建模組的作用域

#python的四個作用域

v = 100

def fun1():

v = 200

print("fun1.v",v)

def fun2():

v = 300

print("fun2.v",v)

fun2()

fun1()

print("全域性的v=",v)

執行結果:

fun1.v 200

fun2.v 300

全域性的v= 100

13 命名空間與作用域

一 命名空間 命名空間即存放名字與物件對映 繫結關係的地方。比如說,x 3,python會申請記憶體空間存放物件3,然後將名字x與3的繫結關係存放於命名空間中,del x表示清除該繫結關係。在程式執行期間最多會存在三種命名空間 二 命名空間的載入順序 python test.py 1 python直...

命名空間和作用域

1 命名空間查詢順序 假設我們要使用變數 runoob,則 python 的查詢順序為 直譯器會從命名空間中查詢runoob,它先從區域性空間查詢,如果找到了它就會使用區域性命名空間的變數runoob,即使全域性命名空間也有變數runoob。這就很容易理解為什麼在函式內部宣告的區域性變數會覆蓋掉在模...

命名空間和作用域

命名空間是對棧區的劃分,存放名字的地方.有了命名空間之後,就可以在棧區中存放相同的名字 存放的名字 存放的python直譯器內建的名字 存活週期 python直譯器啟動則產生,python直譯器關閉則銷毀 print input 存放的名字 只要不是函式內定義 也不是內建的,剩下的都是全域性命名空間...