CodeBaz.dev
689 subscribers
673 photos
108 videos
155 files
495 links
من، محمدرضا کسائی، برنامه‌نویس فول‌استک در تپسی و مدرس پایتون و جنگو در مجتمع فنی تهران هستم. در اینجا قصد دارم تجربیات و دانش خود را در زمینه‌های مختلف برنامه‌نویسی با شما به اشتراک بگذارم.
https://CodeBaz.dev
https://x.com/CodebazDev
Download Telegram
استفاده از
import *

به چند دلیل بده!

یکی از این دلایل تصادف نام‌ها یا Name Collisions نام داره.

فرض کن در یک فایل جنگو می‌خوای هم از فرم‌ها استفاده کنی، هم از مدل‌ها
# ANTI-PATTERN 
from django.forms import *
from django.db.models import *

class MyForm(Form):
name = CharField()


💥 الان مشکل چیه؟
هم django.forms و هم django.db.models کلاسی به اسم CharField دارن!
چون تو import * کردی، آخرین CharField که وارد شده (models.CharField) جایگزین forms.CharField شده.

نتیجه؟ فرم به جای یک فیلد فرم معمولی، داره یه فیلد مدل استفاده می‌کنه! 🤯

نسخه صحیح
from django import forms
from django.db import models

class MyForm(forms.Form):
name = forms.CharField()

🔐 اینطوری هم کد خواناتر و ایمن‌تره، هم هیچ نامی روی دیگری تاثیر نمیذاره

شما چه مشکلات دیگه ای در مورد استفاده از import * سراغ دارید؟ کامنت بذارید 😁

#python
🆔 @CodeBazDev
👍7