python_抽象类(了解)

什么是抽象类?

不完整的一种类。
具有抽象方法的类就是抽象类。(只要有一个抽象方法也可)

什么是抽象方法?

不完整的方法
没有方法体的方法就是抽象方法。

什么是元类?

元类就是用来制作类的类。
正常情况下所有类的元类默认都是type

如何查看一个类的元类

类.__class__
type(类)

查询数据类型

type(对象)
对象.__class__

注意:正常情况下type是系统默认的元类

使用抽象类:

import abc
#把类变成抽象类
class 类名(metaclass=abc.ABCMeta)
#把对象方法变成抽象对象方法
@abc.abstractmethod
方法体必须要pass
#把类方法变成抽象类方法
@abc.abstractclassmethod
#把绑定类的方法变成抽象的绑定类的方法
@abc.abstractmethod
#把静态方法变成抽象的静态方法
@abc.abstractstaticmethod

抽象类的特征:

1.抽象类不能实例化使用
2.抽象类中可以存在抽象方法,也可以存在正常的方法
3.抽象类中可以添加成员属性
4.抽象类的使用方式就是被其他类继承。
5.其他类继承了抽象类并且实现了抽象类的所有抽象方法之后就可以实例化该类

抽象类的实际作用:

1.制定开发程序规范
2.协同程序开发,加速开发效率

例:
#导入抽象类的功能模块
import abc
class User(metaclass = abc.ABCMeta):#注意制作抽象类必须另外指定元类
	#添加用户的方法     对象方法 -> 抽象的对象方法 【小赵】
	@abc.abstractmethod
	def user_add(self):
		pass
	#修改用户的方法     类方法 -> 抽象的类方法    【小钱】
	@abc.abstractclassmethod
	def user_update(cls):
		pass
	#删除用户的方法     绑定类的方法 - > 抽象的绑定类的方法 【小孙】
	@abc.abstractmethod
	def user_del():
		pass
	#查找用户的方法     静态方法 -> 抽象的静态方法   【小李】
	@abc.abstractstaticmethod
	def user_find():
		pass
	#抽象类中可以有正常的方法  【自己】
	def user_lock(self):
		print('封禁用户的方法')
#小赵的工作  [可以在一个单独的文件中开发]
class XZUser(User):
	# 添加用户的方法     对象方法 【小赵】
	def user_add(self):
		print('添加用户的方法-小赵完成的')
#小钱的工作[可以在一个单独的文件中开发]
class XQUser(XZUser):
	# 修改用户的方法     类方法   【小钱】
	@classmethod
	def user_update(cls):
		print('设置用户的方法-小钱完成的')
#小孙的工作[可以在一个单独的文件中开发]
class XSUser(XQUser):
	# 删除用户的方法     绑定类的方法【小孙】
	def user_del():
		print('删除用户的方法-小孙完成的')
#小李的工作[可以在一个单独的文件中开发]
class XLUser(XSUser):
	# 查找用户的方法     静态方法 -> 抽象的静态方法   【小李】
	@staticmethod
	def user_find():
		print('查找用户的方法-小李完成的')

#这里可以使用小李的类
u = XLUser()
#调用方法
u.user_lock()
u.user_add()
XLUser.user_update()
XLUser.user_del()
u.user_find()
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值