__init__
class Cat:
"""
这是一只猫的类
"""
def __init__(self,name):
self.name = name
print(f"我是一只猫,我叫{self.name}")
cat = Cat("加菲猫")
print(cat.name) #加菲猫
__call__
class Cat:
"""
这是一只猫的类
"""
def __init__(self,name):
self.name = name
print(f"我是一只猫,我叫{self.name}")
def __call__(self, *args, **kwargs):
print("__call__ args:的参数",args[0] + args[1])
print("__call__ kwargs:的参数",kwargs["name"])
cat = Cat("加菲猫")
cat(1,2,**{"name":"小米"})
# cat(**{"name":"小米"})
__del__
class Cat:
"""
这是一只猫的类
"""
def __init__(self,name):
self.name = name
print(f"我是一只猫,我叫{self.name}")
def __del__(self):
print("加菲猫已被系统回收")
cat = Cat("加菲猫")
print("------",cat)
del cat #销毁掉Cat 的 cat对象
# print("++++++",cat) # 销毁掉就会在打印就会报错,因为没有这个内存地址
__doc__
class Cat:
"""
这是一只猫的类
"""
cat = Cat()
print(cat.__doc__)
__getitem__
class Cat:
def __init__(self,name):
self.name = name
def __getitem__(self, key):
print("key:",key)
if key == "name":
return self.name
else:
return None
cat = Cat("小米")
print(cat['name'])
__iter__
class Cat:
def __iter__(self):
return iter([1,2,3])
cat = Cat()
for i in cat:
print("cat的迭代内容",i)
__len__
class Cat:
"""
这是一只猫的类
"""
def __init__(self,name,height):
self.name = name,
self.height = height
# print(f"我是一只猫,我叫{self.name}")
def __len__(self):
return self.height
cat = Cat("加菲猫",10)
print("cat:",cat)
print("测试__len__ 方法 len(cat):",len(cat))
__str__
class Cat:
"""
这是一只猫的类
"""
def __init__(self,name):
self.name = name
# print(f"我是一只猫,我叫{self.name}")
def __str__(self):
return "我是%s啊啊啊" %(self.name)
cat = Cat("加菲猫")
print(cat)