python抽象基类是什么?用途是什么?

发布网友

我来回答

2个回答

懂视网

抽象类,就像是类和接口的混合体,具有接口的特性,在python中利用第三方abc模块,实现抽象类。

抽象方法不存在重写的问题,却有实现的问题(推荐学习:Python视频教程)

如果说类是从一堆对象中抽取相同的内容而来的,那么抽象类就是从一堆类中抽取相同的内容而来的,内容包括数据属性和函数属性。

含有抽象方法的类一定是抽象类,但是抽象类不一定含有抽象方法,此时也没有任何意义了。

在python中接口(抽象类)常用于协同工作。

注意:在python中,我们不以有无执行体来区分是否是抽象类,而是根据是否有@abc.abstractmethod装饰器作为标准。

#注意:不能直接实例化抽象类!!!
#示例程序:
import abc #导入abc模块
class InMa(metaclass=abc.ABCMeta): #定义抽象方法
 @abc.abstractmethod #定义抽象方法
 def login(self):
 pass
 @abc.abstractmethod
 def zhuce(self):
 pass
class Login(InMa): #继承抽象类
 def __inti__(self,name,pwd):
 self.name = name
 self.password = pwd
 def login(self):  #实现抽象方法功能

 if self.name == "qq" and self.password == "111":
  print("恭喜登录成功")
 else:
  print("登录失败")

class Zc(Login):
 def __init__(self,name,pwd):
 self.name = name
 self.password = pwd
 def zhuce(self):
 print("恭喜注册成功")
 print("username:",self.name)
 print("password:",self.password)
 #实例对象
ren = Zc("Jaue","qqq")
ren.zhuce()

更多Python相关技术文章,请访问Python教程栏目进行学习!

热心网友

有时候某些类型都有一些共同的特征,它们可以被抽象出来形成一个基类,但这个基类本身不能实例化,只能由子类继承并实现其中的抽象方法后实例化子类对象,这样的类叫抽象类。
例如手机、电脑、电视机都可以归类到电子设备,电子设备就是一个抽象类,它具有通电、运行、关闭等抽象方法,但你不可以直接new一个电子设备类的对象,因为没法给它指定具体的形状、功能等信息,只能从电子设备类派生出手机类、电脑类、电视类,并分别给出不同的通电、运行、关闭方法的具体实现,然后new这些类的对象。这就是多态的体现,C++/Java等静态语言原生支持多态,拥有abstract关键字,可以用来定义抽象类。
而Python是一门鸭子类型的语言,它并不具有真正的多态,所以也没有语言原生的抽象类支持,只能通过第三方的封装类如ABC模拟实现。对于没有接触过C++和Java的Python学习者来说较难理解。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com