使用Python的魔术方法的最大优势在于python提供了简单的方法让对象可以表现得像内置类型一样。
__str__函数
__str__函数用于处理打印实例本身的时候的 输出内容。如果没有覆写该函数,则默认 输出一个对象名称和内存地址。
例如:
>>> class Student(object): ... def __init__(self,name): ... self._name = name ... >>> print Student()
输出:
<__main__.Student object at 0x0000000002A929E8>.
那么我们如何让 输出的结果可读性更高一点呢?我们可以覆写__str__函数。例如
>>> class Student(object): ... def __init__(self, name): ... self._name = name ... def __str__(self): ... return "I'm a student, named %s" % self._name ... >>> print Student("Charlie")
上面这一段话基于自己的理解,不知道对错。
>>> item = [1,2,3] >>> repr(item) '[1, 2, 3]' >>> other_item = eval(repr(item)) >>> other_item[1] 2
廖雪峰老师教程里写的是__next__方法,不知道为啥。
class Fib(object): def __init__(self): self.a, self.b = 0, 1 def __iter__(self): return self def next(self): self.a, self.b = self.b, self.a + self.b if self.a > 10000: raise StopIteration return self.a for i in Fib(): print i
我们来举一个
查看更多关于python魔术方法:让自定义类更像内置类型的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did86199