আমাদের কাছে নিম্নলিখিত কোড রয়েছে যা পাইথন ক্লাসগুলির মধ্যে বৃত্তাকার নির্ভরতা দেখায়৷
class P(): q = Q().do_something(); def do_something(self): pass class Q(): p = P().do_something(); def do_something(self): pass
ক্লাসের ক্ষেত্রে, ফাংশনের বিপরীতে, একটি ক্লাসের বডি সংজ্ঞার সময়ে কার্যকর করা হয়। ক্লাস পি সংজ্ঞায়িত করার জন্য, আমাদের আসলে একটি Q পদ্ধতি কল করতে হবে, যা আমরা করতে পারি না কারণ ক্লাস Q এখনও সংজ্ঞায়িত করা হয়নি।
এর কাছাকাছি কাজ করার জন্য, আমরা ক্লাসগুলিকে সংজ্ঞায়িত করতে পারি এবং তারপরে বৈশিষ্ট্যগুলি যোগ করতে পারি -
class P(object): pass class Q(object): pass P.q = Q.do_something() Q.p = P.do_something()
যদি প্রতিটি do_something কল ইতিমধ্যেই সম্পাদিত অন্য কলের উপর নির্ভর করে তবে এটি কাজ করবে না। সমস্যা সমাধানের জন্য আমাদের এখনও আরও পরিবর্তন করতে হবে৷
ক্লাসের এই সমস্যাগুলি রয়েছে কারণ ক্লাস লেভেলে নির্দেশিকাগুলি (q =Q.do_something()) ক্লাস সংজ্ঞায়িত করার সময় কার্যকর করা হয়, আপনি যখন ক্লাসের একটি উদাহরণ তৈরি করেন তখন নয়
উভয় শ্রেণী সংজ্ঞায়িত করার পরে আমরা একটি শ্রেণীর সংজ্ঞা সম্পূর্ণ করতে পারি। এটি প্রমাণ করে যে পাইথন একটি গতিশীল ভাষা..