شما به یک رابط کاربری انعطافپذیر نیاز دارید که اصول برنامه نویسی پایتون سعی کند با حدس زدن خواستههای کاربران، «کار درست را انجام دهد»، آن را به دو لایه جدا کند: یک لایه «دوستانه» نازک در بالای یک لایه «تند» که دقیقاً همان چیزی را وارد میکند. نیاز دارد و کار واقعی را انجام می دهد. آزمایش لایه ناهنجار باید آسان باشد. باید محدود شود که چه چیزی را می پذیرد و چه چیزی را برمی گرداند. این طرح لایه ای ا اصول برنامه نویسی پایتون مکان نوشتن لایه های دوستانه زیادی با نظرات متفاوت و پیش فرض های متفاوت را فراهم می کند.
https://www.iraniancyber.com/principles-of-programming/ هنگامی که شک دارد، آرگومان های تابع مورد نیاز را ایجاد کنید. کشف آرگومانهای اختیاری سختتر است و میتوانند انتخابهای مهمی را که کاربر باید بداند که انجام میدهند پنهان میکنند. فقط باید استثناها را مطرح کرد: آنها را نگیرید و چاپ نکنید. استثناها اصول برنامه نویسی پایتون ابزاری برای روشن بودن در مورد نیازهای کد و اجازه دادن به تماس گیرنده تصمیم گیری در مورد آن هستند. کد برنامه (مثلاً رابطهای کاربری گرافیکی) باید خطاها را بگیرد و کنترل کند تا از خراب شدن جلوگیری شود، اما کد کتابخانه معمولاً باید خطاها را افزایش دهد، مگر اینکه مطمئن باشد کاربر یا تماسگیرنده چگونه میخواهد با آنها برخورد کند. پیام های خطای مفید بنویسید¶ خاص باشید. مقدار اشتباه، چه چیزی اشتباه بود، و شاید چگونه م اصول برنامه نویسی پایتون یتوان آن را برطرف کرد، درج کنید. به عنوان مثال، اگر کد نتواند فایل مورد نیاز خود را پیدا کند، باید بگوید که به دنبال چه بوده و کجا به نظر میرسد. برای خوانایی بنویسید¶ مگر اینکه در حال نوشتن اسکریپتی باشید که قصد دارید فردا یا هفته آینده آن را حذف کنید، کد شما احتمالاً چندین بار بیشتر از آنچه نوشته شده خوانده می شود. و "راه حل موقت" امروز اغلب به کد ب اصول برنامه نویسی پایتون حرانی فردا تبدیل می شود. بنابراین، با استفاده از نام های توصیفی و ثابت، برای وضوح بهینه سازی کنید.
https://www.iraniancyber.com/ پیچیدگی همیشه حفظ می شود¶ پیچیدگی همیشه حفظ می شود و به شدت بیشتر از سیستمی است ک اصول برنامه نویسی پایتون ه کد مدل سازی می کند. تلاش برای پنهان کردن پیچیدگی از کاربر اغلب نتیجه معکوس دارد. به عنوان مثال، اغلب وسوسه انگیز است که برخی از کلمات کلیدی مورد استفاده مجدد را در یک تابع پنهان کنید و این را کوتاه کنید: def get_image(نام فایل، normalize=True، begin=0، end=none): ... به این: def get_image(نام فایل، گزینهها={}): ... اگرچه به نظر می رسد رابط کاربری از طریق آرگومان اصول برنامه نویسی پایتون های پنهان کلمه کلیدی ساده شده است، اکنون کاربر باید به خاطر بیاورد که گزینه ها چه هستند یا در اسناد جستجو کند تا نحوه استفاده از آنها را بهتر درک کند. از آنجایی که علم جدید زمانی اتفاق میافتد که ایدههای قدیمی مجدداً به کار گرفته میشوند یا به روشهای پیشبینی نشده گسترش مییابند، کد علمی نباید پیچیدگی خود را پنهان کند یا بیش از اصول برنامه نویسی پایتون حد برای یک مورد استفاده خاص بهینه شود. باید آشکارا نشان دهد که چه پیچیدگی وجود دارد. توجه داشته باشید حتی بهتر از آن، باید از آرگومانهای «فقط کلمه کلیدی» استفاده اصول برنامه نویسی پایتون کنید، که در پایتون 3 معرفی شدهاند، که کاربر را ملزم میکند تا آرگومان را با کلمه کلیدی به جای موقعیت ارسال کند. get_image(نام فایل، *، normalize=درست، ابتدا=0، پایان=هیچ) ... هر آرگومان بعد از * فقط کلمه کلیدی است. بنابراین، استفاده از get_image('thing.png', False) مجاز نخواهد بود. تماس گیرنده باید به صراحت get_image ('thing.png', normalize=False) را تایپ کند. خواندن دومی آسانتر است و نویسنده را قادر میسازد تا پارامترهای اضافی را بدون شکستن سازگاری با عقب درج کند. به طور مشابه، نوشتن یک تابع که چندین مرحله را انجام می دهد و گزینه های زیادی دارد به جای چندین عملکرد که یک مرحله را انجام می دهد و گزینه های کمی دارد می تواند آموزش برنامه نویسی کودکان و نوجوانان وسوسه انگیز باشد. مزایای "بسیاری از عملکردهای کوچک" خود را در زمان مشخص می کند: توضیح و مستندسازی توابع کوچک آسانتر است، زیرا رفتار آنها به خوبی مشخص است. عملکردهای کوچک را می توان به صورت جداگانه آزمایش کرد و اصول برنامه نویسی پایتون به راحتی می توان دید که کدام مسیرها آزمایش شده اند و هنوز آزمایش نشده اند. در صورتی که رفتار آن به خوبی تعریف شده و محدوده دقیقی داشته باشد، نوشتن یک تابع با توابع دیگر و استفاده مجدد از آن به روشی پیشبینی نشده آسانتر است. این فلسفه یونیکس است: "یک کار را انجام دهید و آن را به خوبی انجام دهید." تعداد فعل و انفعالات ممکن بین آرگومان ها با تعداد آرگومان ها افزایش می یابد، که استدلال و آزمایش تابع را دشوار می کند. به ویژه، باید از استدلال هایی که معنای آنها وابسته به استدلال های دیگر است اجتناب شود.
https://inventwithpython.com/ توابع باید یک نوع چیز را بدون توجه به آرگومان هایشان، به ویژه آرگومان های اختیاری شان، برگردانند. نقض "پایداری نوع بازگشت" باری را بر دوش تماس گیرنده تابع وارد می کند، که اکنون باید جزئیات داخلی تابع را درک کند تا بداند برای هر ورودی معین چه نوع مورد انتظاری است. این کار مستندسازی، آزمایش و استفاده از تابع را سختتر میکند. پایتون ثبات نوع بازگشتی را اعمال نمی کند، اما به هر حال باید برای آن تلاش کنیم. اگر تابعی اصول برنامه نویسی پایتون دارید که بسته به ورودیهایش انواع مختلفی از چیزها را برمیگرداند، این نشانه آن است که باید به چندین تابع تبدیل شود. پایتون فوق العاده انعطاف پذیر است. بسیاری از گزینه های طراحی ممکن را در خود جای می دهد. با اعمال محدودیت و سازگاری با اکوسیستم علمی پایتون، می توان از پایتون برای Principles of Python programming ساخت ابزارهای علمی استفاده کرد که در طول زمان دوام داشته باشند و به خوبی رشد کنند.