# -*- coding:utf-8 -*-
# 点的形式操作 就是调用 __attr__ 系列# 底层字典操作 就是调用 __item__ 系列# __delitem__ 操作使用底层字典形式访问类属性 会触发这个方法
class Foo:
def __init__(self,x):
self.x = x
def __delitem__(self, key): print("__delitem__")
def __delattr__(self, item): print("__delattr__")f = Foo(1)
# del f.x # __delattr__
del f["x"] # __delitem__
# print 原理 执行str方法 __str__
class Foo:
def __init__(self,x): self.x = x
# def __str__(self): # 修改内置方法
# return '输入的是%s'%self.x
def __repr__(self): # str方法和repr方法同时出现 会执行str方法
return "__repr__%s"%self.x # 没有str方法 则执行repr
f = Foo(1)
print(f) # print(f)-->str(f)-->f.__str__ # 输入的是1