1. 程式人生 > >python之理解self傳參

python之理解self傳參

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