python之理解self傳參
阿新 • • 發佈:2019-01-30
1.self在類的方法中才有,獨立函式不用
2.self在呼叫類的方法時,可以不必傳入
3.self指的是類的例項本身,不是類
4.類的方法中的self,也是指的例項
__init__函式:
1.如果繼承父類中有init函式,子類可以不定義init函式
例子:
# -*- coding:utf-8 -*- class Task:
#定義元組 rfields = ( ("pkg_name", True, 'pkg name', 'a4_summary_modify'), ("target", True, 'key', 'k'), ("file_path", True, 'file path', 'g'), ("curl_thread_count", True, 'curl thread count', ''), ("key", True, 'execute time(hour)', ''), ('mem_threshold', False, "mem threshold", 2*1024*1024), )
#self.key是成員變數 def __init__(self,key): self.key = {}
#如果x[0]=key 即等於target,就打印出來filt及filt[0][3]
#key是臨時變數,生命週期即函式結束,例項task傳的‘target’引數給臨時變數key def getKeyName(self,key,default = None): filt = filter(lambda x:x[0] ==key, self.rfields) print filt ,filt[0][3] return self.key.get(key, filt[0][3] if filt else default) if __name__ == '__main__': task = Task('x'列印結果:).getKeyName('target')
(('target', True, 'key', 'k'),) k