পাইথন ইন এ সংক্ষেপে (২ য় সংস্করণ) বইতে একটি উদাহরণ রয়েছে যা
ক্লাসিক রেজোলিউশন ক্রমে কীভাবে পদ্ধতিগুলি সমাধান
করা হয় এবং কীভাবে এটি নতুন ক্রমের সাথে পৃথক হয় তা প্রদর্শন করতে পুরানো স্টাইলের ক্লাস ব্যবহার করা হয়।
উদাহরণটি নতুন স্টাইলে পুনরায় লিখে আমি একই উদাহরণটি চেষ্টা করেছি তবে পুরানো স্টাইলের ক্লাসগুলির সাথে ফলাফলটি আলাদা নয়। উদাহরণটি চালাতে আমি যে পাইথন সংস্করণটি ব্যবহার করছি তা হ'ল 2.5.2। নীচে উদাহরণ দেওয়া হল:
class Base1(object):
def amethod(self): print "Base1"
class Base2(Base1):
pass
class Base3(object):
def amethod(self): print "Base3"
class Derived(Base2,Base3):
pass
instance = Derived()
instance.amethod()
print Derived.__mro__
কল instance.amethod()
প্রিন্টগুলি Base1
, তবে আমার এমআরও সম্পর্কে নতুন স্টাইলের ক্লাসের আউটপুটটি হওয়া উচিত Base3
। কল Derived.__mro__
প্রিন্ট:
(<class '__main__.Derived'>, <class '__main__.Base2'>, <class '__main__.Base1'>, <class '__main__.Base3'>, <type 'object'>)
আমি নিশ্চিত নই যে নতুন স্টাইলের ক্লাসগুলির সাথে এমআরও সম্পর্কে আমার বুঝতে ভুল হয়েছে বা আমি নির্লিপ্ত ভুল করছি যা আমি সনাক্ত করতে সক্ষম নই। এমআরও সম্পর্কে আরও ভাল বোঝার জন্য দয়া করে আমাকে সহায়তা করুন।