آموزش جامع ثابتها و کنوانسیونهای نامگذاری در پایتون
🎯 اهداف یادگیری
- درک مفهوم ثابتها در پایتون و تفاوت آن با سایر زبانها
- آشنایی با کنوانسیونهای نامگذاری ثابتها در پایتون
- یادگیری بهترین روشها برای تعریف و استفاده از ثابتها
- آشنایی با ماژول const برای ایجاد ثابتهای واقعی
- یادگیری تفاوت بین ثابتها و متغیرها در عمل
📌 مفهوم ثابتها در پایتون
برخلاف بسیاری از زبانهای برنامهنویسی، پایتون به صورت built-in از ثابتها (constants) پشتیبانی نمیکند. اما برنامهنویسان از کنوانسیونهای نامگذاری برای ایجاد ثابتهای نمادین استفاده میکنند.
python
# تعریف ثابت با استفاده از کنوانسیون نامگذاری (حروف بزرگ)PI = 3.14159MAX_CONNECTIONS = 100DATABASE_URL = "postgresql://localhost:5432/mydb"# این یک کنوانسیون است، نه یک محدودیت واقعیPI = 3.14 # از نظر فنی امکانپذیر است، اما نباید انجام شود!
ویژگیهای ثابتهای نمادین در پایتون:
- فقط یک کنوانسیون: پایتون واقعاً از ثابتها پشتیبانی نمیکند
- حروف بزرگ: تمام حروف نام ثابت باید بزرگ باشد
- Underline برای جدا کردن: از _ برای جدا کردن کلمات استفاده میشود
- قرارگیری در ماژولها: معمولاً ثابتها در بالای فایل یا در ماژول جداگانه تعریف میشوند
📌 کنوانسیونهای نامگذاری ثابتها
برای ایجاد ثابتهای معنادار و قابل فهم، از این قوانین پیروی کنید:
python
# ✅ نامهای صحیح برای ثابتهاAPI_KEY = "your_api_key_here"DEFAULT_TIMEOUT = 30MAX_FILE_SIZE = 1024 * 1024 # 1MBSUPPORTED_LANGUAGES = ["fa", "en", "es"]# ❌ نامهای نادرست (اینها متغیر هستند، نه ثابت)api_key = "your_api_key_here"defaultTimeout = 30MaxFileSize = 1048576
قوانین نامگذاری ثابتها:
- همه حروف بزرگ: LIKE_THIS
- استفاده از underline: برای جدا کردن کلمات
- نامهای توصیفی: باید هدف ثابت را به وضوح بیان کنند
- عدم تغییر مقدار: پس از تعریف، مقدار نباید تغییر کند
📌 ثابتهای رایج در برنامهنویسی
برخی از ثابتهایی که معمولاً در برنامهها استفاده میشوند:
python
# ثابتهای ریاضیPI = 3.141592653589793E = 2.718281828459045GOLDEN_RATIO = 1.618033988749895# ثابتهای پیکربندیDATABASE_NAME = "my_app_db"MAX_USERS = 1000DEFAULT_CURRENCY = "IRR"SUPPORT_EMAIL = "support@example.com"# ثابتهای وضعیتSTATUS_ACTIVE = "active"STATUS_INACTIVE = "inactive"STATUS_PENDING = "pending"
📌 ایجاد ماژول ثابتها
برای سازماندهی بهتر، ثابتها را در یک فایل جداگانه قرار دهید:
python
# 📁 constants.py# ثابتهای مربوط به پایگاه دادهDB_HOST = "localhost"DB_PORT = 5432DB_NAME = "my_database"# ثابتهای مربوط به APIAPI_VERSION = "v1"MAX_RETRIES = 3TIMEOUT = 30# ثابتهای پیامهاWELCOME_MESSAGE = "خوش آمدید به برنامه ما!"ERROR_404 = "صفحه مورد نظر یافت نشد"
python
# 📁 main.pyimport constants# استفاده از ثابتهاprint(constants.WELCOME_MESSAGE)print(f"اتصال به پایگاه داده در پورت {constants.DB_PORT}")
📌 ایجاد ثابتهای واقعی با ماژول const
اگر نیاز به ثابتهای واقعی دارید، میتوانید از ماژول const استفاده کنید:
python
from const import Constant# تعریف ثابت واقعیclass AppConstants(Constant): PI = 3.14159 MAX_USERS = 1000 API_KEY = "secret_key_123"# استفاده از ثابتهاprint(AppConstants.PI) # خروجی: 3.14159# ❌ این خطا ایجاد میکندtry: AppConstants.PI = 3.14 # خطا: نمیتوان ثابت را تغییر دادexcept AttributeError as e: print(f"خطا: {e}")
نصب ماژول const:
bash
pip install const
📌 تفاوت ثابتها و متغیرها در عمل
درک تفاوت این دو مفهوم بسیار مهم است:
python
# ✨ ثابت (کنوانسیون)COMPANY_NAME = "شرکت نمونه"TAX_RATE = 0.09# 🔄 متغیرuser_name = "رضا محمدی"user_age = 25is_active = True# تغییر متغیرها ✅ (مجاز)user_name = "علی حسینی"user_age = 26# تغییر ثابتها ❌ (نادرست - فقط برای نمونه نمایش داده شده)TAX_RATE = 0.10 # این کار نباید انجام شود!
تفاوتهای کلیدی:
- ثابتها: مقادیر ثابت و تغییرناپذیر در طول اجرای برنامه
- متغیرها: مقادیر تغییرپذیر که میتوانند در طول برنامه به روز شوند
- نامگذاری: ثابتها با حروف بزرگ، متغیرها با حروف کوچک
- هدف: ثابتها برای مقادیر ثابت، متغیرها برای دادههای پویا