python之理解self传参

来源:互联网 发布:genecard是什么数据库 编辑:程序博客网 时间:2024/05/04 08:03

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


0 0
原创粉丝点击