74-python-类的内置方法

# 双下方法:
# 1. __str__
# 2. __repr__

class A:
    def __str__(self):     
        return "str_"
    def __repr__(self):
        return 'repr_'

print(A)    # 打印结果:<class '__main__.A'>   -- 内存地址
a = A()
print('%s : %s'%(A,a))    # 打印结果:<class '__main__.A'> : str_    # 内存地址 和 str
print(a)    # 打印结果:str_

# a.__str__ 找到的时 object
# object 里有一个__str__,一旦被调用,就返回调用这个方法的对象内存地址
# %s  __str__
# %r __repr__
# 有 __str__ 方法,返回的一定是字符串
# repr 是 str 的备用
# 如果没有 str 的时候,就会找 repr
# 但是 没有repr 的时候,继续找父类的 str 如果一直找到 object 则,返回的是:内存地址


# 3. __del__
# 在删除某个对象之前,做的一些事
class B:
    def __del__(self):  # 下面的代码会在 对象 b 删除前调用
        print('删除前执行')

b = B()
del b
# print(b)    # 报错
# 4. __call__
# 在对象后面加() 可以调用 __call__ 内置方法

class C:
    def __call__(self):
        print('对象加() 会调用此函数')

c = C()
c()     # 打印结果:对象加() 会调用此函数
        # 也可以这样写:C()()
posted @ 2018-11-06 20:07  _Q  阅读(68)  评论(0)    收藏  举报