首页 > 代码库 > python一些定制方法(函数)
python一些定制方法(函数)
__str__() __call__() __repr__()
方法
>>> class Student(object): def __init__(self, name): self.name = name def __call__(self): print(‘My name is %s.‘ % self.name) def __str__(self): return ‘I am a print call for name:%s !‘%self.name def __repr__(self): return ‘I am a print var value for name:%s !‘%self.name >>> s = Student(‘lucy‘) >>> s //call __repr__() I am a print var value for name:lucy ! >>> s() // call __call__() My name is lucy. >>> print s //call __str__() I am a print call for name:lucy !
__str__是调用print 打印,
__repr__是直接写变量时打印的
__iter__
()
方法
()
方法
如果一个类想被用于for ... in
循环,类似list或tuple那样,就必须实现一个__iter__()
方法
__getitem__()
方法
要表现得像list那样按照下标取出元素,需要实现__getitem__()
方法
__getattr__()
方法
那就是写一个__getattr__()
方法,动态返回一个属性
class Student(object): def __init__(self): self.name = ‘Michael‘ def __getattr__(self, attr): if attr==‘score‘: return 99
raiseAttributeError(‘\‘Student\‘ object has no attribute \‘%s\‘‘ % attr) //调用不存在的属性是,抛出
>>> s = Student()
>>> s.name
‘Michael‘
>>> s.score
99
本节介绍的是最常用的几个定制方法,还有很多可定制的方法,请参考Python的官方文档。
http://docs.python.org/2/reference/datamodel.html#special-method-names
python一些定制方法(函数)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。