python魔术方法和抽象类

类的常用魔术方法

不需人为调用的方法,在特定的时刻自动触发(可以理解为不用声明的函数)
统一的特征,方法名前后各两个下划线包裹
操作类
(1)init:构造函数
(2)New:对象实例化方法,此函数较特殊,一般不用
(3)call:对象当函数使用时触发
(4)str:对象当字符串使用时触发(常用)
(5)repr:返回字符串

class A():
	def __init__(self,name=0)
		print("我先出来啦")
	def __call__(self)
		print("我也出来啦")

a=A()
a()
我先出来啦
我也出来啦

抽象类

抽象方法:没有具体实现内容的方法称为抽象方法

class Ab():
	def Hellow(self):
		pass

#目的:规范化

抽象方法的主要意义时规范了子类的行为和接口
抽象方法的使用需借助abc模块
import abc
抽象类:包括抽象方法的类,通常称为ABC类
使用:
(1)抽象类可以包括抽象方法,也可以包括具体方法
(2)抽象类可以有方法也可以有属性
(3)抽象类不允许直接实例化
(4)必须继承才可以使用,且集成的子类必须实现所有继承来的抽象方法
(5)假定子类没有实现所有继承的抽象方法,子类也布恩那个实例化
(6)抽象类的主要作用是设定类的标准,以便于开发的时候具有统一的规范
#声明一个类并且指明当前类的元类

class Human(metaclass=abc,ABCMeta)
	#定义一个抽象的方法
	@abc.abstractmethod
	def smoking(self):
		pass
	
	#定义类抽象方法
	@abc.abstractclassthod
	def drink():
		pass
	
	#定义静态抽象方法
	@abc.abstractstaticmethod
	def play():
		pass

猜你喜欢

转载自blog.csdn.net/qq_15821487/article/details/126241100