নিম্নলিখিত কোডে, আমি একটি বেস বিমূর্ত শ্রেণি তৈরি করি Base
। আমি সম্পত্তি Base
সরবরাহের জন্য উত্তরাধিকারসূত্রে প্রাপ্ত সমস্ত শ্রেণিগুলি চাই name
, তাই আমি এই সম্পত্তিটিকে একটি করে দিয়েছি @abstractmethod
।
তারপরে আমি একটি সাবক্লাস তৈরি করেছিলাম , যার Base
নাম Base_1
কিছু কার্যকারিতা সরবরাহ করা হয়, তবে এখনও বিমূর্ত থাকে। এখানে কোনও name
সম্পত্তি নেই Base_1
, তবে তবুও পাইথন ত্রুটি ছাড়াই class শ্রেণির কোনও বস্তুকে তাত্পর্যপূর্ণ করে। একজন কীভাবে বিমূর্ত বৈশিষ্ট্য তৈরি করতে পারে?
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
# this class does not provide the name property, should raise an error
def __init__(self, strDirConfig):
super(Base_1, self).__init__(strDirConfig)
def _doStuff(self, signals):
print 'Base_1 does stuff'
class C(Base_1):
@property
def name(self):
return 'class C'
if __name__ == '__main__':
b1 = Base_1('abc')
@property
এclass C
,name
একটি পদ্ধতি প্রত্যাবর্তন করবে।