এই টিউটোরিয়ালে, আমরা পাইথন প্রজেক্টে অনুসরণ করা উচিত মানক স্টাইল গাইড সম্পর্কে জানব। যেকোনো প্রোগ্রামিং ল্যাঙ্গুয়েজের মানক স্টাইল গাইড মেনে চলা সকল টিম মেম্বারকে একগত রাখে এবং কোডটি পেশাদার করে তোলে।
পাইথনের ক্ষেত্রে অধিকাংশ ডেভেলপার PEP 8 স্টাইল গাইড অনুসরণ করেন। এটি কোডকে সুন্দর এবং আরও পঠনযোগ্য করে তোলে। সম্পূর্ণ স্টাইল গাইডের তালিকা আপনি এখানে পেতে পারেন। এই আর্টিকেলে আমরা একটি কিউরেটেড স্টাইল গাইড উপস্থাপন করছি।
ইন্ডেন্টেশনের জন্য ট্যাব ব্যবহার করুন
কোডে ইন্ডেন্টেশনের জন্য ট্যাব ব্যবহার করলে কোড আরও পঠনযোগ্য হয়, নয়তো একাধিক ফাংশন ও মেথডের জন্য যাদুকর স্পেস ব্যবহার করা হয়। আপনি যেকোনো কোড এডিটরের সেটিংসে ট্যাবের জন্য স্পেস সংখ্যা নির্ধারণ করতে পারেন।
নিচে কিছু উদাহরণ দেওয়া হলো:
# উদাহরণ
def sample(random):
# স্টেটমেন্ট ১
# স্টেটমেন্ট ২
# ...
return random
পাইথনের ডিফল্ট UTF-8 বা ASCII এনকোডিং
আন্তর্জাতিক পরিবেশের জন্য পাইথনের ডিফল্ট UTF-8 বা ASCII এনকোডিং ব্যবহার করা সেরা অভ্যাস।
টাপলে ট্রেইলিং কমা
টাপলে ট্রেইলিং কমা ব্যবহার করা সেরা অভ্যাসের একটি। তবে এটি বাধ্যতামূলক নয়।
# উদাহরণ tup = (1, 2, 3,)
ডাকস্ট্রিং (Docstrings) ব্যবহার করুন
ফাংশন এবং ক্লাসে ডাকস্ট্রিং ব্যবহার করুন। ডাকস্ট্রিং-এর জন্য ট্রিপল কোটেশন ব্যবহার করা যায়। নিচে কিছু উদাহরণ দেওয়া হলো:
def sample():
\"\"\"This is a function\"\"\"
\"\"\"
This
is
a function
\"\"\"
class Smaple:
\"\"\"This is a class\"\"\"
\"\"\"
This
is
a class
\"\"\"
প্রতিটি লাইনে ৭৯ অক্ষরের বেশি লিখবেন না
PEP 8 স্টাইল গাইডে প্রতিটি লাইনে ৭৯ অক্ষরের বেশি লিখা অনुशंसিত নয়। এড়াতে লাইনটি একাধিক লাইনে ভাগ করে এস্কেপ ক্যারেক্টার (\\\) ব্যবহার করুন। নিচে উদাহরণ দেওয়া হলো:
# উদাহরণ
def evaluate(a, b, c, d):
return (2 ** (a + b) / (c // d) ** d + a - d * b) \
- (3 ** (a + b) / (c // d) ** d + a - d * b)
স্পেস ব্যবহার করুন
অপারেটরের আগে এবং পরে একটি স্পেস ব্যবহার করা সেরা অভ্যাসের একটি। কমার পরেও স্পেস দিন আরও পঠনযোগ্যতার জন্য।
# উদাহরণ import random result = random.randint(1, 3) + random.randint(1, 2)
ভেরিয়েবল, কনস্ট্যান্ট, ক্লাস ও ফাংশন নামকরণ
প্রোগ্রাম 전반ে ভেরিয়েবল, কনস্ট্যান্ট, ক্লাস ও ফাংশনের জন্য একই কেসিং ফলো করুন। অধিকাংশ পাইথন ডেভেলপার ফাংশন ও ভেরিয়েবলের জন্য snake_case এবং ক্লাসের জন্য PascalCase ব্যবহার করেন। কনস্ট্যান্টের জন্য সকল অক্ষর বড় হাতের এবং আন্ডারস্কোর দিয়ে পৃথক করা হয় (যেমন: PI_TWO)।
snake_case => this_is_function PascalCase => ThisIsClass CONSTANT => THIS_IS_CONSTANT
একবারে এক মডিউল ইমপোর্ট করুন
সিনট্যাক্টিক্যালি সঠিক হলেও একই লাইনে একাধিক মডিউল ইমপোর্ট করবেন না। নিচে উদাহরণ দেওয়া হলো:
# করবেন না import math, random # করুন import math import random
কমেন্ট আপডেট রাখুন
কমেন্টগুলো সর্বদা আপডেট রাখুন। কোড আপডেট করার সময় কমেন্ট আপডেট করা ভুলবেন না। কোডিং-এ এটি সবচেয়ে গুরুত্বপূর্ণ বিষয়ों 중 একটি, কিন্তু অধিকাংশ ডেভেলপার এটি ভুলে যান। এটা মনে রাখবেন।
একা ব্যবহার করা উচিত নয় এমন ক্যারেক্টারগুলো
কিছু ক্যারেক্টার একা ভেরিয়েবল নাম হিসেবে ব্যবহার করা উচিত নয়। সেগুলো হলো: I (বড় হাতের i) এবং l (ছোট হাতের L), কারণ এগুলো রোমান অক্ষরের সাথে সাদৃশ্য রখে।
আইডেন্টিফায়ারে ASCII ক্যারেক্টার ব্যবহার করবেন না
আইডেন্টিফায়ারে ASCII ক্যারেক্টার ব্যবহার করা কখনোই ভালো অভ্যাস নয়। এড়িয়ে চলুন।