counterexample



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

در ادامه مطلب یه مثال ازش میبینیم: 

ادامه مطلب

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

ادامه مطلب

- تهیه نسخه پشتیبان اطلاعات و بازیابی اون اطلاعات

کاربردش برای زمانهایی همچون مواقعی که یک ریست فکتوری انجام بگیره و تمام داده های شما از بین میرن هستش. یا مثلن کاربر اطلاعاتی که تو اپلیکیشن شما داشته رو بعد از تعویض موبایلش بتونه رو موبایل جدیدش هم همون اطلاعات رو داشته باشه!

ادامه مطلب

در اکثر برنامه ها دکمه ای برای به اشتراک گذاری مطلب یا تصویر و یا . که داخل برنامه هستند وجود داره که خیلی کاربردیه و به نظرم وجود همچین دکمه ای تو تمام برنامه ها نیازه
تو این آموزش قصد داریم نحوه ی ایجاد این دکمه رو توضیح بدیم.
ادامه مطلب

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

در پایتون ارسال اشیای تغییرناپذیر (Immutable) به مانند انواع بولین، اعداد، رشته و تاپل به تابع، باعث بروز رفتاری مشابه با شیوه by value می‌شود ولی در مورد ارسال اشیای تغییرپذیر (Mutable) به مانند انواع لیست، دیکشنری و مجموعه اینگونه نخواهد بود.

 

برای جلوگیری از تغییر اشیای تغییرپذیر درون تابع، می‌توان یک کپی از این نوع اشیا را ایجاد و سپس به صورت آرگومان به تابع ارسال کرد:

>>> def f(a):
.     a[0] = 3
.     print(a)
.
>>> b = [1, 2]
>>> f(b[:])      # Pass a copy
[3, 2]
>>> b
[1, 2]

در نمونه کد بالا، از آنجایی که تمام اعضای شی لیست متغیر b تماما از انواع تغییرناپذیر هستند، یک کپی سطحی (Shallow Copy) از شی کفایت می‌کند ولی در حالتی غیر از این می‌بایست یک کپی عمیق (Deep Copy) از شی ارسال گردد.


با مزایا شروع میکنیم؛ استفاده از iterator ها و generator ها خوب است چون:

1- خاصیت lazy بودن به ما امکان می دهد iterator هایی بسازیم که اندازه ندارند و عملا نامتناهی هستند.

2- مکانیزم iterator از لحاظ حافظه بسیار بهینه است و گاهی حتی چاره ای جز استفاده از iterator نداریم.

3- با استفاده از توابع __next__‌و یا yield می توان کلاس های بسیار مرتبی نوشت که به صورت کاملا شخصی سازی شده (customized) یک iterator را بسازند. مثال آن می تواند ساختن iterator بر روی یک دیتابیس یا دیتاست باشد.

 

ادامه مطلب

تبلیغات

محل تبلیغات شما
محل تبلیغات شما محل تبلیغات شما

آخرین وبلاگ ها

آخرین جستجو ها

مستر بیت کوین | آموزشگاه ارز های دیجیتال طاووس هنر آموزشگاه زبان اینترنتی حکمت معرفی رشته روانشناسی مقالات طراحی اپ موبایل پیشنهاد کوتاه معلمان ویژه کسب امتیاز در فرم های 120امتیازی پسته کرمان طلا و جواهری ناب اخبار پزشکی