প্রোগ্রামারদের মধ্যে একটা জোকস আছে যে কোনো একটা প্রোগ্রাম লিখতে যে সময় লাগে, প্রোগ্রামটা ডিবাগ করতে তার থেকে বেশি সময় লাগে। উপরের ছবিটা সুন্দর না ? আসল কথা হলো আমাদের কোড লেখার থেকে কোড পড়তে হয় বেশি।আন্ডারস্ট্যান্ডএবল কোড আমাদের ব্রেইনের ব্যান্ডউইথ কে ফ্রি করে দেয়। ক্লিন,রিডএবল কোড লেখা কিন্তু একটা যোগ্যতা। এজন্য আমাদের চেষ্টা করতে হবে যতটা সম্ভব রিবাবলে কোড লেখার যে কোড নিজে কথা বলে। যেমন: আমি যদি কোনো ভ্যারিয়েবল নাম c_t_num এর পরিবর্তে calculate_total_number নেই তাহলে বেশি রিডেবল হবে। পাইথন এ পেপ ৮ নামে অফিসিয়াল কোডিং স্টাইল এর গাইড আছে। পেপ ৮ এর কিছু জিনিশ আমি লিখছি - পাইথন কোডিং কনভেনশন - ১. ৪ টা স্পেস / ১ ট্যাব ব্যবহার করতে হবে ইনডেন্ট হিসেবে ২. প্রত্যেক ক্লাসের মধ্যে ২ টা ব্ল্যান্ক লাইন দিতে হবে ৩. ক্লাসের মধ্যে মেথড ডেফিনেশন করতে ১ তা ব্ল্যান্ক লাইন দিতে হবে। pycharm পাইথন এর একটা জনপ্রিয় IDE . এতে ডিফল্ট স্টাইল বলা আছে। আপনি ফলো না করলে ইয়েলো কালার এর একটা দাগ আসবে। তাছাড়া যারা অন্য টেস্ট এডিটর ব্যবহার করেন তারা flake৮ প্যাকেজ ইনস্টল করে ন
পাইথন এ ডিফল্ট কিছু মেথড আছে যাদেরকে ম্যাজিক মেথড বলা হয়। এই মেথড গুলা __ মেথড নাম __ দিয়ে লেখা হয় .( আন্ডার স্কোর আন্ডার স্কোর একসাথে ডান্ডার ও বলা যায় ) __init__(): এটাকে কন্সট্রাক্টর বলা হয়। কাজ কি ? কাজ হলো যখন কোনো ক্লাস এর ইনস্ট্যান্স create করা হয় তখন এই মেথড নিজে থেকে কল হয়। যেমন আমার যদি একটা ক্যাট ক্লাস নেই। class Cat : def __init__ ( self , legs , colour ): self . legs = legs self . color = color def get_name(self, name): return self.name = name fido = Cat ( 4 , "brown" ) spot = Cat ( 3 , "yellow" ) এই ক্লাস এ যদি আমরা ক্যাট এর নাম পেতে চাই তাহলে আমাদের Cat ().get_name ("Mini") কল করতে হবে। কিন্তু লেগ্স এন্ড কালার এর জন্য কিন্তু Cat ().get_name ("Mini") কল করা লাগসে না। আমি যখন এ Cat ( 4 , "brown" ) initializeকরছি তখনই __init__ কল হইয়া গেসে । সাধারণত কোনো ক্লাস কল করার সাথে সাথে যদি কোনো ভ্যালু এসাইন করতে চাই তাহলে __init__ব্যবহার করা হয়