آموزش ذن پایتون: صریح بهتر از ضمنی است

May 2020

ویدیویی وجود ندارد

فلسفه دوم

صریح بهتر از ضمنی است Explicit Is Better Than Implicit

هرچند که بنظر میرسد این مفهوم ساده باشد اما در واقع یکی از پیچیده‌ترین آنهاست. در ظاهر بسیار ساده است: هیچ کاری که برنامه نویس صریحا اجازه نداده را انجام ندهید. به غیر از پایتون، فریمورک‌ها و کتابخانه‌ها نیز همچین مسئولیتی مشابهی دارند زیرا کدهای آنها توسط برنامه نویسانی که از قبل هدف آنها مشخص نیست در دسترس است.

 

متاسفانه کدهای کاملا صریح باید به تمام زوایای برنامه با دقت زیادی توجه کنند از کارهای ساده و عادی گرفته تا مدیریت حافظه. برخی از زبانهای برنامه نویسی انتظار همچین دقتی را از برنامه نویس دارند اما پایتون اینطور نیست. برای اینکه کار برنامه نویس راحت باشد و شما بتوانید روی مشکل تمرکز کنید باید کارهای خاصی را انجام دهید.

 

به طور کلی پایتون از شما میخواهد هدف خود را به صورت صریح اعلام کنید به جای اینکه به هر خط کد شما ایراد بگیرد. به طور مثال زمانی که میخواهید یک متغیر را مقدار دهی کنید نیازی نیست که نگران میزان memory مورد نیاز، اختصاص دادن یک pointer یا حذف کردن متغیر از memory زمانی که با آن نیاز ندارید باشید. مدیریت حافظه یک بخش ضروری از تعیین متغیر است بنابراین پایتون در پشت پرده اینکار را برای شما انجام میدهد. با اینکار میخواهد با به صورت ضمنی رفتار صریح را توجیه کند.

 

در مقابل در زبان برنامه نویسی Perl هر زمان که در regex یک عبارت پیدا شود آن را در متغیر ذخیره میکند. کسی که با نحوه رفتار زبان Perl آشنا نباشد نمیتواند به کدی که نمیداند چطور کار میکند اعتماد کند چون بنظر میرسد این متغیر از ناکجا آمده و مقداری ندارد. پایتون سعی میکند با استفاده از خوانایی کد بالا از این رفتار ضمنی جلوگیری کند.

 

از آنجایی که هر زبان برنامه نویسی روش مخصوص به خود را برای اعلام اهدافش دارد نمیتوان یک توصیه عمومی برای همه کرد.

tax = .07  #make a variable named tax that is floating point
print (id(tax))  #shows identity number of tax
print("Tax now changing value and identity number")
tax = .08  #create a new variable, in a different location in memory and mask the first one we created
print (id(tax))  # shows identity of tax
print("Now we switch tax back...")
tax = .07  #change tax back to .07 (mask the second one and reuse first
print (id(tax))  #now we see the original identity of tax

 

ارسال نظر

اگر قراره سوالی بپرسید که داخلش کد هست، بهتره از کدتون عکس بگیرید و به ایمیلی که پایین نوشتم بفرستید