কম্পিউটার

পাইথনে সাধারণ প্রোগ্রামিং ত্রুটি বা 'গটচাস' কী কী?


এখানে কিছু সবচেয়ে সাধারণ পাইথন প্রোগ্রামিং ভুল/গুচ্ছ যা প্রোগ্রামাররা করে থাকে:

স্কোপের নামের সন্ধান: পাইথন LEGB (স্থানীয়, এনক্লোসিং, গ্লোবাল, বিল্ট-ইন) ক্রমে স্কোপিং নিয়ম অনুসরণ করে। যেহেতু পাইথনের কোন কঠোর টাইপ বাইন্ডিং নেই, তাই প্রোগ্রামাররা একটি আউটার স্কোপ ভেরিয়েবলকে অন্য মানের সাথে পুনরায় যুক্ত করতে পারে যা পরে বাইরের স্কোপে ব্যবহার করা যেতে পারে কিন্তু এখন অন্য কিছু মান দ্বারা প্রতিস্থাপিত হয়।

is এবং =: এর মধ্যে পার্থক্য না করা উভয় বস্তু একই মেমরি ঠিকানা উল্লেখ করে কিনা তা পাইথন পরীক্ষায় একটি অপারেটর। ==অপারেটর __eq__ ফাংশন চালায় যা বিভিন্ন শ্রেণীর জন্য আলাদাভাবে সমতা পরীক্ষা করতে পারে।

একটি তালিকার উপর পুনরাবৃত্তি করার সময় সংশোধন করা:আপনি যদি এটির উপর পুনরাবৃত্তি করার সময় একটি তালিকা থেকে উপাদানগুলি সরিয়ে দেন তবে আপনি একটি সূচক ত্রুটি পাবেন। এটি তালিকার আকার হ্রাস করার কারণে আপনি এটির সাথে সূচকটি হ্রাস করছেন না।

ক্লোজার বাইন্ডিং − নিম্নলিখিত কোডটি বিবেচনা করুন -

উদাহরণ

listLambdas = [lambda x : i + x for i in range(5)]
for lam in listLambdas:
   print(lam(10))

আউটপুট

এটি আউটপুট দেবে −

14
14
14
14
14

হতবাক? এটি বন্ধের মধ্যে বাঁধাই কারণে হয়. এই তালিকার সমস্ত ল্যাম্বডাস পরিবর্তনশীল i উল্লেখ করে, অর্থাৎ, যখন এটি পরিবর্তিত হয়, এই ল্যাম্বডাগুলি নতুন মান উল্লেখ করতে শুরু করে৷

বিল্ট-ইনগুলির সাথে নামের সংঘর্ষ:৷ আপনি অবশ্যই কিছু সময়ে যোগফল নামে একটি পরিবর্তনশীল তৈরি করেছেন। মনে রাখবেন আপনি এই ক্ষেত্রে যোগফল ফাংশনের একটি রেফারেন্স পুনরায় বরাদ্দ করেছেন। এই জাতীয় জিনিসগুলির জন্য এটি তুচ্ছ বলে মনে হয় তবে প্যাকেজগুলিকে এইভাবে নামকরণ করা হলে কিছু গুরুতর সমস্যা হতে পারে। এটি অন্যান্য প্যাকেজগুলিকে আদর্শের পরিবর্তে আপনার ক্লাসগুলি আমদানি করতে পারে৷

অপারেটরদের জন্য স্বজ্ঞাত বাস্তবায়ন: পাইথন ক্লাসের জন্য অপারেটর ফাংশন ওভারলোড করার একটি উপায় প্রদান করে। প্রায়শই, লোকেরা এই অপারেটরগুলিকে একটি অস্বাভাবিক উপায়ে প্রয়োগ করার প্রবণতা রাখে এবং শেষ পর্যন্ত জটিল এবং অজ্ঞাত API তৈরি করে৷


  1. পাইথনে রানটাইম ত্রুটিগুলি কী কী?

  2. পাইথনে একটি ফাংশনের প্রয়োজনীয় আর্গুমেন্ট কি?

  3. পাইথনে ডিফল্ট আর্গুমেন্ট কি?

  4. পাইথন ফাংশন বৈশিষ্ট্য কি?