__str__() __call__() __repr__()Method
>>> 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!>&G t;> s () //Call __call__ () My name was lucy.>>> print S //call __str__ () I am a print call for Name:lucy !
__str__是调用print 打印,
__repr__是直接写变量时打印的
__iter__
()方法
如果一个类想被用于for ... in循环,类似list或tuple那样,就必须实现一个__iter__()方法
__getitem__()Method
To act as a list to take out elements according to subscript, you need to implement the __getitem__() method
__getattr__()Method
That is to write a __getattr__() method that dynamically returns a property
class Student(object): def __init__(self): self.name = ‘Michael‘ def __getattr__(self, attr): if attr==‘score‘: return 99
raise AttributeError(‘\‘Student\‘ object has no attribute \‘%s\‘‘ % attr) //调用不存在的属性是,抛出
>>> s = Student()>>> s.name‘Michael‘>>> s.score99
This section describes some of the most commonly used customization methods, as well as a number of customizable methods, please refer to the official Python documentation.
Http://docs.python.org/2/reference/datamodel.html#special-method-names
Python some custom methods (functions)