A** خود را با ادعاها پوشش دهید
گاهی اوقات یک ویژگی زبان واقعاً مفید کمتر مورد توجه قرار می گیرد
بیش از آنچه که شایسته است بنا به دلایلی، این اتفاقی است که برای پایتون افتاد
بیانیه ادعای داخلی
در این فصل میخواهم مقدمهای برای استفاده از عنوانهای ادعایی در پایتون ارائه کنم. شما یاد خواهید گرفت که چگونه از آنها برای کمک به طور خودکار استفاده کنید
خطاها را در برنامه های پایتون خود شناسایی کنید. این برنامه های شما را می سازد
قابل اطمینان تر و اشکال زدایی آسان تر.
در این مرحله، ممکن است از خود بپرسید که «ادعاها چیست و چیست؟
آیا آنها خوب هستند؟” بیایید برای آن پاسخ هایی به شما بدهیم.
در هسته خود، بیانیه ادعای پایتون یک کمک اشکال زدایی است که یک را آزمایش می کند
وضعیت. اگر شرط ادعا درست باشد، هیچ اتفاقی نمیافتد و شما
برنامه به طور معمول به اجرا ادامه می دهد. اما اگر شرط ارزیابی نادرست شود، یک استثناء AssertionError با یک گزینه اختیاری ایجاد میشود.
ادعا در پایتون – یک مثال
در اینجا یک مثال ساده آورده شده است تا بتوانید ببینید که کجا ممکن است ادعا شود
مفید است. من سعی کردم به این یک مشکل واقعی در دنیای واقعی بدهم
ممکن است در یکی از برنامه های خود با آن مواجه شوید.
فرض کنید در حال ساخت یک فروشگاه آنلاین با پایتون هستید. شما در حال کار برای افزودن یک قابلیت کوپن تخفیف به سیستم هستید و در نهایت تابع apply_discount زیر را می نویسید:
def apply_discount(product, discount):
price = int(product[‘price’] * (1.0 – discount))
assert 0 <= price <= product[‘price’]
return price
به بیانیه ادعا در آنجا توجه کنید؟ این تضمین می کند که صرف نظر از اینکه قیمت های تخفیفی محاسبه شده توسط این تابع نمی تواند کمتر از 0 دلار باشد و نمی تواند بالاتر از قیمت اصلی محصول باشد.
بیایید مطمئن شویم که اگر این تابع را فراخوانی کنیم، واقعاً همانطور که در نظر گرفته شده است کار می کند
برای اعمال تخفیف معتبر در این مثال، محصولات برای فروشگاه ما خواهد بود
به عنوان فرهنگ لغت ساده نشان داده شود. احتمالاً این چیزی نیست که شما می خواهید
برای یک برنامه واقعی انجام دهید، اما برای نشان دادن ادعاها به خوبی کار خواهد کرد. بیایید یک محصول نمونه ایجاد کنیم – یک جفت کفش خوب با قیمت
149.00 دلار
shoes = {‘name’: ‘Fancy Shoes’, ‘price’: 14900}
به هر حال، آیا متوجه شدید که چگونه از مسائل گرد کردن ارز اجتناب کردم
با استفاده از یک عدد صحیح برای نشان دادن مقدار قیمت به سنت؟ یعنی
به طور کلی ایده خوبی است … اما من پرت می شوم. حالا اگر 25 درصد تخفیف اعمال کنیم
برای این کفش ها، ما انتظار داریم که به قیمت فروش 111.75 دلار برسیم:
apply_discount(shoes, 0.25)
11175
خوب، این به خوبی کار کرد. اکنون، بیایید سعی کنیم برخی از تخفیف های نامعتبر را اعمال کنیم. به عنوان مثال، یک “تخفیف” 200٪ که به ما منجر می شود
پول به مشتری:
apply_discount(shoes, 2.0)
Traceback (most recent call last):
File “”, line 1, in
apply_discount(prod, 2.0)
File “”, line 4, in apply_discount
assert 0 <= price <= product[‘price’]
AssertionError
قوانین ارسال دیدگاه در سایت