# 裝飾器類
from functools import wraps
class
logit
(object):
def__init__
(self, logfile=
'out.log'):
self.logfile = logfile
def__call__
(self, func)
: @wraps(func)
def(
*args,
**kwargs)
: log_string = func.__name__ +
" was called"
print
(log_string)
# 開啟logfile並寫入
with
open
(self.logfile,
'a')
as opened_file:
# 現在將日誌打到指定的檔案
opened_file.write(log_string +
'\n'
)# 現在,傳送乙個通知
self.notify(
)return func(
*args,
**kwargs)
defnotify
(self)
:# logit只打日誌,不做別的
pass
# 裝飾器子類
class
email_logit
(logit)
:'''
乙個logit的實現版本,可以在函式呼叫時傳送email給管理員
'''def__init__
(self, email=
,*args,
**kwargs)
: self.email = email
super
(email_logit, self)
.__init__(
*args,
**kwargs)
defnotify
(self)
:# 傳送一封email到self.email
# 這裡就不做實現了
pass
python 類 繼承 python 類的繼承
1 所用的類都可以被繼承 2 沒有繼承其他類的類必然有乙個父類 object 3子類可以擁有父類的 init 裡的類容 派生子類除了父類的一些屬性,還會有自己的屬性和方法,這些就叫派生 如何使用 實現 class animal def init self,name,attack,hp self.na...
Python類的封裝和繼承
python繼承 物件導向的三大特徵 封裝,繼承,多型 自動銷毀的方法 def del self print 物件正在銷毀 程式結束時自動呼叫 del self 測試乙個物件有多少個引用 import syssys.getrefcount 最少返回2,因為它把自己也當成乙個物件。繼承 子類繼承父類,...
Python 類的繼承
有兩個模組 file1.py 和 file2.py file2中有個基類base def abc self return function abc and name self class base object def init self,name self.name name defrun sel...