3
วิธีสร้างคุณสมบัตินามธรรมในคลาสนามธรรมของ python
Baseในรหัสต่อไปนี้ฉันจะสร้างฐานระดับนามธรรม ฉันต้องการให้คลาสทั้งหมดที่สืบทอดมาBaseเพื่อจัดหาnameคุณสมบัติดังนั้นฉันจึงสร้างคุณสมบัตินี้เป็น@abstractmethod. จากนั้นฉันก็สร้างคลาสย่อยที่Baseเรียกว่าBase_1ซึ่งมีไว้เพื่อจัดหาฟังก์ชันการทำงานบางอย่าง แต่ยังคงเป็นนามธรรม ไม่มีnameคุณสมบัติในBase_1แต่อย่างไรก็ตาม python จะติดตั้งอ็อบเจ็กต์ของคลาสนั้นโดยไม่มีข้อผิดพลาด หนึ่งสร้างคุณสมบัติที่เป็นนามธรรมได้อย่างไร? from abc import ABCMeta, abstractmethod class Base(object): __metaclass__ = ABCMeta def __init__(self, strDirConfig): self.strDirConfig = strDirConfig @abstractmethod def _doStuff(self, signals): pass @property @abstractmethod def name(self): #this property will be supplied by the inheriting classes #individually pass class Base_1(Base): __metaclass__ = ABCMeta # …