内置方法

常用的内置方法就两个

1.__str_

改变对象的字符串显示

class Foo:
    def __init__(self,name):
        self.name = name
    def __repr__(self):
        return 'obj in str'  #这里只能是return
    # def __str__(self):
    #     return '%s obj in str'%self.name
f = Foo('egon')
print(f)  #优先执行__str__里面的内容
# 那么你是不是据地__repr__没用呢?
# print('%s'%f)  #执行的是__str__里面的返回值
# print('%r'%f)  #执行的是__repr__里面的返回值
print('==============')
print(str(f))  #当执行str(f)时,会去找__str__这个方法,如果找不到的时候,__repr__这个方法就给替补了
print(repr(f))
#1.当打印一个对象的时候,如果实现了__str__方法,打印__str__中的返回值
# 2.当__str__没有被实现的时候,就会调用__repr__方法
# 3.但是当你用字符串格式化的时候,%s和%r会分别调用__str__和__repr__方法
# 4.不管是在字符串格式化的时候还是在打印对象的时候,
# __repr__方法都可以作为__str__方法的替补,但反之则不行
# 5.用于友好的表示对象。如果__str__和__repr__方法你只能实现一个:先实现__repr__

 #__str__和__repr__
__str__和__repr__

 2.__del__

析构方法,当对象在内存中被释放时,自动触发执行。

注:此方法一般无须定义,因为Python是一门高级语言,程序员在使用时无需关心内存的分配和释放,因为此工作都是交给Python解释器来执行,所以,析构函数的调用是由解释器在进行垃圾回收时自动触发执行的。

3.参考地址

http://www.cnblogs.com/linhaifeng/articles/6204014.html

http://www.cnblogs.com/haiyan123/p/7375772.html

http://www.cnblogs.com/linhaifeng/articles/7341318.html

http://www.cnblogs.com/linhaifeng/articles/7341177.html

原文地址:https://www.cnblogs.com/zhaojingyu/p/9057931.html