通過包裝定製自己的資料型別

2022-06-29 15:39:06 字數 1746 閱讀 3202

需求:通過繼承來構建自己的資料型別:(例子:列表中只能新增字串)

1

class

list(list):

2def

3if type(object) ==str:4#

使用父類中的方法6#

7print

8print

9else:10

print("

只能新增字串")

1112

if__name__ =="

__main__":

13 list =list()

tom")16

print

(list)

17'''

18輸出:

192144665322048

202144663681800

21只能新增字串

22['tom']

23'''

包裝的擴充套件:

下面通過包裝實現 許可權管理,給增加時間,過濾敏感詞

1

import

time

2class

open:

3def

__init__(self,filename,mode = '

r',encoding = '

utf8'):

4 self.file=open(filename,mode,encoding=encoding) #

得到乙個物件

5 self.mode =mode

6 self.encoding =encoding

7def

write(self,text):

8 add = time.strftime("

%y-%m-%d %x

") #

%x 代表時間9if

"中國"in

text:

10print("

!!!含有敏感詞,請檢查!")

11else

:12 self.file.write("

{} {}

".format(add,text))

13def

__getattr__

(self, item):

14print("

沒有{}這個屬性

".format(item))

1516

if__name__ =="

__main__":

17 f = open("

d:/test.txt

",'w')

18 f.write("

cpu負載過高\n")

19 f.write("

記憶體剩餘不足\n")

20 f.write("

硬碟剩餘不足\n")

21 f.write("

中國\n")

22#f.read() #沒有read這個屬性

2324

'''25

輸出:26

!!!含有敏感詞,請檢查!

2728

檔案中的內容:

292019-08-06 16:18:28 cpu負載過高

302019-08-06 16:18:28 記憶體剩餘不足

312019-08-06 16:18:28 硬碟剩餘不足

32'''

原始資料型別和包裝型別的「 」

1integer與integer間的比較,從jdk1.5開始,有 自動裝箱 這麼乙個機制,在byte 128到127範圍內 ps整型的八位二進位制的表示的範圍為 128到127 如果存在了乙個值,再建立相同值的時候就不會重新建立,而是引用原來那個,但是超過byte範圍還是會新建的物件。來自 inte...

基本資料型別和包裝資料型別的使用標準

強制 所有pojo類屬性必須使用包裝資料型別 強制 rpc方法的返回值和引數必須使用包裝資料型別 推薦 所有區域性變數都推薦使用基礎資料型別。這裡建議我們使用包裝型別,原因是什麼呢?舉乙個扣費的例子,我們做乙個扣費系統,扣費時需要從外部的定價系統中讀取乙個費率的值,我們預期該介面的返回值中會包含乙個...

基本資料型別的包裝物件

首先,請給出下列 的輸出 var s hello world string.prototype.typeof function console.log typeof s 1 console.log typeof string s 2 console.log typeof newstring s 3 ...