Python概念 禁錮術之 slots

2022-04-06 00:31:51 字數 980 閱讀 5437

之所以給它起名為禁錮術,並非空缺來風,下面我們來了解一下__slost__

__slost__:其實就是將類中的名稱鎖定,例項化物件,只可以賦值和呼叫,不可以刪除名字和增加新的名字

**示例:(例項化物件示例)

1#2

class

foo:

3__slots__ = ["

x","

y"]#

在類中定義屬性x和y

4 f = foo()#

例項化foo

5 f.x = 1#

此時我們可以使用例項化物件呼叫類中的屬性x

6 f.y = 27#

如果現在,我們在例項化物件中增加乙個z

8 f.z = 39#

會得到如下錯誤10#

attributeerror: 'foo' object has no attribute 'z'11#

也就是不可以,對例項化物件增加新的屬性12#

如果現在,我們在例項化物件中刪除乙個x

13del f.x#

此時程式執行並不會出錯,但是我們列印一下foo的命名空間

14print(foo.__dict__)15

#16#依然可以看到x的存在,所以,例項化物件不可以刪除__slots__定義的屬性

**示例:(類示例)

class

foo:

__slots__ = ["

x","y"

]foo.

__slots__ = "z"

print(foo.__dict__)#

delfoo.x

print(foo.__dict__)#

綜合以上內容,我們得到結論:

__slots__只是針對例項化物件的禁錮,直接對類中的屬性進行修改,是可以的

python之包的概念

載入順序 記憶體 內建 sys.path 一系列自定義模組 import sys sys.path 環境變數 存放檔案路徑的列表 重點 預設列表的第乙個元素就是當前被執行檔案所在的目錄 可以自定義往sys.path新增路徑 sys.path.insert 0,r 想匯入的模組的絕對路徑 新增到指定索...

Python之基礎概念 五

基本運算子 a 0b11011 b 0b11100 a 27 b 28 c a a a b a 31 bin a 0b11111 符合賦值運算子 運算子優先順序 類似於int 也可以使用float 將其他型別轉化成浮點數 整數和浮點數運算時,結果轉為浮點數。round value 可以返回四捨五入的...

Python之程式設計基礎概念

6.基本內建資料型別與運算子 6.3 浮點數 6.4 運算子 每個物件由 標識 id 型別 type 值 value 組成 型別 相當於物件儲存的 資料 的型別。型別可以限制物件的取值範圍和可執行操作,使用type 123 獲取所屬型別。值 表示物件所儲存的資料的資訊。使用print 123 直接打...