day27物件導向(四)

2022-02-13 05:23:06 字數 2484 閱讀 6043

'''

授權 授權是包裝的乙個特性,包裝乙個型別通常是對已經存在的型別的一些定製,這種做法可以新建

修改或刪除原有產品的功能,其他的則保持原樣 授權的過程,及時所有更新的功能都是由新類的某部分來

處理,但已存在的功能就授權給物件的預設屬性

__getattr__

'''

class  open:

def __init__(self,filename,mode='r',encoding='utf-8'):

# self.filename = filename

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

self.mode=mode

self.encoding=encoding

def write(self,line):

print('------------->',line)

self.file.write(line)

def __getattr__(self, item):

return getattr(self.file,item)

f1 = open('a.txt','r+')

print(f1.read())

f1.write('333333333333\n')

迭代器

'''

迭代器'''

class foo:

def __init__(self,n):

self.n = n

def __iter__(self):

return self

def __next__(self):

if self.n == 0:

raise stopiteration('error')

self.n -= 1

return self.n

f1 = foo(10)

for i in f1:

print(i)

'''

迭代器斐波那契

'''class foo:

def __init__(self):

self.a = 1

self.b = 1

def __iter__(self):

return self

def __next__(self):

if self.a >30:

raise stopiteration('error')

self.a,self.b = self.b,self.a +self.b

return self.a

l = foo()

for i in l:

print(i)

def test():

a = 1

b = 1

for i in range(10):

a,b = b, b+a

print(a)

test()

'''

doc'''

class foo:

'我是描述資訊'

pass

class bar(foo):

pass

print(bar.__doc__) #該屬性無法繼承給子類

'''

call

'''class foo:

def __call__(self, *args, **kwargs):

print('例項執行啦 call')

f1=foo()

f1() #例項執行啦 call

#f1的類foo 下的__call__

@property@x.setter @x.deleter

class foo:

def __init__(self,val):

self.__name=val #將所有的資料屬性都隱藏起來

@property

def name(self):

return self.__name #obj.name訪問的是self.__name(這也是真實值的存放位置)

@name.setter

def name(self,value):

if not isinstance(value,str): #在設定值之前進行型別檢查

raise typeerror('%s must be str' %value)

self.__name=value #通過型別檢查後,將值value存放到真實的位置self.__name

@name.deleter

def name(self):

#raise typeerror('can not delete')

del self.__name

f=foo('egon')

print(f.name)

day27 物件導向的總結 異常處理

錯誤的分類if if 2 1 print 222 dic num int input 請輸入數字 dic dic hobby 什麼是異常?發生異常錯誤之後,你的程式就中斷了 異常處理?當 出現異常時,我通過某種方式不讓你的程式中斷,合理的 跳 過去,異常處理 為什麼要有異常處理?異常處理的兩種方式 ...

學習筆記 day27

表單 form 屬性 action 提交路徑,請求路徑 method get 明信片 提引數url,容量有限,不安全,有快取,post 信封 提引數url,請求實體 相對安全 理論沒有限制 put delete enctype enctype multipart form data 在存在檔案的時候...

每日演算法 day 27

那些你早出晚歸付出的刻苦努力,你不想訓練,當你覺的太累了但還是要咬牙堅持的時候,那就是在追逐夢想,不要在意終點有什麼,要享受路途的過程,或許你不能成就夢想,但一定會有更偉大的事情隨之而來。mamba out 2020.3.12 記憶化 記憶化的思考方式 主要就是從搜尋開始進行思考然發現哪些分枝會大量...