现在的位置: 主页 > 在线留言 > 文章列表

python学习之魔法方法的调用

作者:北京财贸天阶投资顾问有限公司 来源:www.usasheng.com 发布时间:2017-09-08 18:18:45
 

python学习之魔法方法的调用

在python中存在一些前面和后边都加上两个下划线的函数,这种函数会在一些特殊的情况下被调用,而不是根据他们的名字被调用。下面详细介绍几个重要的函数.

__init__函数,这类进行初始化的函数,在创建一个具体的对象的时候会自动的调用。

class People: def __init__(self): self.university="shandong" def getUniversity(self): return self.university xiang=People() #when you create an object, the __init__ method will be excuted dynamically print xiang.getUniversity() class student(People): def __init__(self): People.__init__(self) gao=student() print gao.getUniversity()

上述函数中在运行xiang=People()的时候会自动调用__init__()函数,站群软件,而子类继承父类的__init__函数的时候使用的是Father.__init__(self)其中self表示子类自身。

class counterList(list): def __init__(self,*args): self.counter=0 list.__init__(self,*args) def __getitem__(self,index): #it will be exceted dynamically when you use [] self.counter+=1 print "I am running" return list.__getitem__(self,index) count=counterList(range(0,10)) print count.counter print count[0]+count[1]getitem()函数在使用[ ]时自动调用。

迭代器函数的使用:

class Fibs: def __init__(self): self.a=0 self.b=1 def next(self): self.a,self.b=self.b,self.a+self.b return self.a def __iter__(self): return self fibs=Fibs() for f in fibs: if f>5: print f break使用其自带的迭代器必须实现next和__iter__函数。

此外python中还存在可以直接使用类名调用的函数静态函数和类变量函数

class MyClass: @staticmethod #create static method def smath(): print "this is static method" @classmethod #create class method def cmath(clf): print "this is class method" MyClass.smath() MyClass.cmath()





企业建站2800元起,携手武汉肥猫科技,做一个有见地的颜值派!更多优惠请戳:襄阳SEO http://xiangyang.raoyu.net

  • 上一篇:Python读书笔记:细节决定成败(2)
  • 下一篇:最后一页
  •