python之命名空間

2022-07-19 09:18:12 字數 568 閱讀 4971

建立乙個類就會建立乙個類的命名空間,用來儲存類中定義的所有名字,這些名字稱為類的屬性

而類的良好總屬性:資料屬性和函式屬性

其中類的資料屬性是共享給所有物件

print(id(g1.camp))     #引用的位址是一樣的

print(id(garen.camp))

輸出結果為:

其中類的函式屬性是繫結到所有物件

print(id(g1.attack))      #兩個引用位址不一樣

print(id(garen.attack))

輸出結果為:

分析:g1.attack就是在執行garen.attack的功能,python的class機制會將garen的函式屬性attack繫結給g1,g 1相當於拿到了乙個指標,指向garen類的attack功能。除此之外,g1.attack()會將g1傳給attack的第乙個引數。

建立乙個物件(例項)就會建立乙個物件(例項)的命名空間,存放物件(例項)的名字,稱為物件(例項)的屬性

在obj.name會先從obj自己的命名空間裡找name,找不到則去類中找,類中找不到就找父類。最後找不到就丟擲異常。

python之命名空間

一 命名空間namespaces 存放名字的空間,是對棧區的劃分,有了名稱之後,就可以在棧區中存放相同的名字,詳細的,命名空間分為三種。1.1 內建命名空間 存放的名字 存放的是python直譯器內內建的名字 存活週期 python直譯器啟動則產生。python直譯器關閉則銷毀。print 1.2 ...

Python命名空間總結 「命名空間之禪」

python中的命名空間,在使用點號.和不使用點號.兩種情況下使用變數名時,會有不同的處理方式。賦值語句 var value 僅僅是建立或改變當前作用域變數名,除非使用了global或者nonlocal關鍵字 引用語句 var 搜尋路徑如下 l local 在當前作用域下搜尋變數名var e 在所有...

python入門之命名空間

name tank 存放名字的空間 如果你想訪問乙個變數值,必須先訪問對應的命名空間,拿到名字和對應的記憶體位址的繫結關係 python提前給你的定義完的名字,就是存在內建命名空間存放於檔案級別的名字,就是全域性命名空間 if while for 內部定義的名字執行之後都存放於全域性命名空間函式內部...