Ninja Learn | نینجا لرن
#پست_جدید میخوام درمورد یک موضوع خیلی جالب توی جنگو صحبت کنم که اکثرا توش مشکل دارن خب اون چیه؟ 🤓 کش شدن نتیجه کوری ها❗️ میدونستید که جنگو نتیجه کوری هارو کش میکنه؟ حالا این یعنی چی ⁉️ یعنی جنگو فقط یک بار دیتابیس رو هیت میکنه و دیتا رو میگیره…
پیشنهاد میکنم از این پست به بعد رو شروع کنید به خوندن واقعا چیزای خفنی یاد میگیرید
❤8
سلام دوستان 👋
خب دوره امنیت رو انتخاب کردید و بیشترین رای رو آورد و ضبط این دوره به زودی استارتش زده میشه
ادامه دوره DRF هم در دست ادیت هست و بزودی منتشر میشه
سایتمون هم به زودی راه اندازی میشه و قراره خفن ترین و بهترین دوره های آموزشی ایران رو ضبط کنیم واستون
منتظر خبرای خوب باشید 😊
خب دوره امنیت رو انتخاب کردید و بیشترین رای رو آورد و ضبط این دوره به زودی استارتش زده میشه
ادامه دوره DRF هم در دست ادیت هست و بزودی منتشر میشه
سایتمون هم به زودی راه اندازی میشه و قراره خفن ترین و بهترین دوره های آموزشی ایران رو ضبط کنیم واستون
منتظر خبرای خوب باشید 😊
🔥18👏4👍3
Ninja Learn | نینجا لرن pinned «سلام دوستان 👋 خب دوره امنیت رو انتخاب کردید و بیشترین رای رو آورد و ضبط این دوره به زودی استارتش زده میشه ادامه دوره DRF هم در دست ادیت هست و بزودی منتشر میشه سایتمون هم به زودی راه اندازی میشه و قراره خفن ترین و بهترین دوره های آموزشی ایران رو ضبط کنیم…»
🎥 معرفی MoviePy ابزاری خفن برای ویدیوها تو پایتون
اگه تا حالا دنبال یه ابزار برای کار با ویدیو تو پایتون گشتی، MoviePy دقیقاً همون چیزیه که میخوای. این پکیج فوقالعاده بهت اجازه میده با چند خط کد، ویدیوها رو ویرایش کنی، بهشون متن یا موسیقی اضافه کنی یا حتی کلیپهای جدید بسازی 🎬
بیایم ببینیم MoviePy چیه و چه کارایی میتونه برامون بکنه.
حالا MoviePy چیه و چرا باید استفاده کنیم؟
خب MoviePy یه کتابخونه اوپنسورسه که میتونی باهاش این کارارو بکنی:
✂️ برش ویدیو (Trimming)
🎞️ چسبوندن چند تا ویدیو به هم (Concatenation)
✍️ اضافه کردن متن یا افکت به ویدیو
🌀 ساخت انیمیشنهای ساده
🔊 ترکیب صدا و ویدیو
این پکیج با کتابخانه هایی مثل NumPy و PIL هم سازگاره، یعنی میتونی راحت ویدیوها رو هرجوری که دوست داری شخصیسازی کنی.
چجوری نصبش کنیم؟
خیلی ساده، این دستور رو بزن:
یه مثال ساده:
برش ویدیو
فرض کن یه ویدیو داری که فقط یه بخشش رو لازم داری. اینجوری میتونی انجامش بدی:
اضافه کردن متن به ویدیو
حالا اگه بخوای یه متن خوشگل هم به ویدیو اضافه کنی، کافیه این کد رو بزنی:
چرا MoviePy خفنه؟
🛠️ سادگی: حتی اگه تازهکاری، خیلی راحت میتونی باهاش کار کنی.
🎨 انعطاف بالا: از پروژههای کوچیک تا حرفهایترین کارا، MoviePy دستتو باز میذاره.
⚡ سرعت مناسب: نسبت به خیلی از ابزارای دیگه، سرعت پردازشش خیلی خوبه.
کجا میتونی ازش استفاده کنی؟
ساخت ویدیوهای آموزشی یا تبلیغاتی
ادیت ویدیوهای یوتیوب یا اینستاگرام
خودکارسازی پردازشهای ویدیویی برای پروژههای بزرگ
امید وارم مفید بوده باشه :)
اگه تا حالا دنبال یه ابزار برای کار با ویدیو تو پایتون گشتی، MoviePy دقیقاً همون چیزیه که میخوای. این پکیج فوقالعاده بهت اجازه میده با چند خط کد، ویدیوها رو ویرایش کنی، بهشون متن یا موسیقی اضافه کنی یا حتی کلیپهای جدید بسازی 🎬
بیایم ببینیم MoviePy چیه و چه کارایی میتونه برامون بکنه.
حالا MoviePy چیه و چرا باید استفاده کنیم؟
خب MoviePy یه کتابخونه اوپنسورسه که میتونی باهاش این کارارو بکنی:
✂️ برش ویدیو (Trimming)
🎞️ چسبوندن چند تا ویدیو به هم (Concatenation)
✍️ اضافه کردن متن یا افکت به ویدیو
🌀 ساخت انیمیشنهای ساده
🔊 ترکیب صدا و ویدیو
این پکیج با کتابخانه هایی مثل NumPy و PIL هم سازگاره، یعنی میتونی راحت ویدیوها رو هرجوری که دوست داری شخصیسازی کنی.
چجوری نصبش کنیم؟
خیلی ساده، این دستور رو بزن:
pip install moviepy
یه مثال ساده:
برش ویدیو
فرض کن یه ویدیو داری که فقط یه بخشش رو لازم داری. اینجوری میتونی انجامش بدی:
from moviepy.editor import VideoFileClip
# بارگذاری ویدیو
clip = VideoFileClip("video.mp4")
# برش از ثانیه ۱۰ تا ۲۰
trimmed_clip = clip.subclip(10, 20)
# ذخیره ویدیو جدید
trimmed_clip.write_videofile("trimmed_video.mp4")
اضافه کردن متن به ویدیو
حالا اگه بخوای یه متن خوشگل هم به ویدیو اضافه کنی، کافیه این کد رو بزنی:
from moviepy.editor import VideoFileClip, TextClip, CompositeVideoClip
# ویدیو اصلی
clip = VideoFileClip("video.mp4")
# ایجاد متن
txt = TextClip("Hello, World!", fontsize=70, color='white')
txt = txt.set_position('center').set_duration(5)
# ترکیب متن و ویدیو
video = CompositeVideoClip([clip, txt])
# ذخیره ویدیو
video.write_videofile("video_with_text.mp4")
چرا MoviePy خفنه؟
🛠️ سادگی: حتی اگه تازهکاری، خیلی راحت میتونی باهاش کار کنی.
🎨 انعطاف بالا: از پروژههای کوچیک تا حرفهایترین کارا، MoviePy دستتو باز میذاره.
⚡ سرعت مناسب: نسبت به خیلی از ابزارای دیگه، سرعت پردازشش خیلی خوبه.
کجا میتونی ازش استفاده کنی؟
ساخت ویدیوهای آموزشی یا تبلیغاتی
ادیت ویدیوهای یوتیوب یا اینستاگرام
خودکارسازی پردازشهای ویدیویی برای پروژههای بزرگ
#python #libary
🔆 CHANNEL | GROUP
❤8👍2🤩2
iran-cities-zhop.zip
35.1 KB
⚡11👏4👍2
✨ الستیک سرچ در جنگو ✨
اگه یه سیستم داری که نیاز داره روی دیتا جستجوهای سریع و پیشرفته انجام بشه، الستیک سرچ (Elasticsearch) یکی از بهترین انتخابهاست. این ابزار جستجوی قدرتمند بهت کمک میکنه تا جستجوهایی مثل فیلترهای پیچیده، جستجوی تماممتنی (Full-Text Search) و حتی پیشنهادات مرتبط رو راحت پیادهسازی کنی. حالا بیا ببینیم چطور میتونی ازش تو پروژههای جنگو استفاده کنی.
چرا الستیک سرچ؟
جنگو با ORM خودش برای کوئریها خوبه، ولی وقتی تعداد رکوردها زیاد بشه یا بخوای جستجوی خیلی پیچیده بزنی، سرعت و انعطافش کم میشه. اینجا الستیک سرچ به دادت میرسه.
تا باهاش میتونی:
🔍 جستجوهای سریعتر داشته باشی حتی با دیتاستهای بزرگ
✨ جستجوی full-text یا فازی (مثل پیشنهادهای تایپشده اشتباه) انجام بدی
دادهها رو بر اساس 📊 اولویت و امتیاز (Relevance) مرتب کنی
راهاندازی Elasticsearch در جنگو
برای اینکه الستیک سرچ رو به پروژه جنگوت اضافه کنی، مراحل زیر رو دنبال کن:
1⃣ نصب Elasticsearch
اول از همه باید الستیک سرچ رو نصب و راهاندازی کنی. میتونی از Docker استفاده کنی:
2⃣ نصب کتابخونهها
پکیجهایی مثل
3⃣ تنظیمات اولیه
توی فایل تنظیمات جنگو (settings.py)، آدرس و پورت الستیک سرچ رو مشخص کن:
ایجاد ایندکس و اتصال به مدلها
حالا باید دادههات رو به الستیک سرچ وصل کنی و ایندکس بسازی.
ایجاد Document برای مدلها
خب Document جاییه که مدلهای جنگو رو به ایندکس الستیک سرچ وصل میکنه:
ایندکس کردن دادهها
برای انتقال دادههای فعلی به الستیک سرچ:
پیادهسازی جستجو در ویوها
حالا بیا یه API برای جستجو درست کنیم:
ویو جستجو
اضافه کردن به URLها
ادامه پست بعدی
امید وارم مفید بوده باشه :)
اگه یه سیستم داری که نیاز داره روی دیتا جستجوهای سریع و پیشرفته انجام بشه، الستیک سرچ (Elasticsearch) یکی از بهترین انتخابهاست. این ابزار جستجوی قدرتمند بهت کمک میکنه تا جستجوهایی مثل فیلترهای پیچیده، جستجوی تماممتنی (Full-Text Search) و حتی پیشنهادات مرتبط رو راحت پیادهسازی کنی. حالا بیا ببینیم چطور میتونی ازش تو پروژههای جنگو استفاده کنی.
چرا الستیک سرچ؟
جنگو با ORM خودش برای کوئریها خوبه، ولی وقتی تعداد رکوردها زیاد بشه یا بخوای جستجوی خیلی پیچیده بزنی، سرعت و انعطافش کم میشه. اینجا الستیک سرچ به دادت میرسه.
تا باهاش میتونی:
🔍 جستجوهای سریعتر داشته باشی حتی با دیتاستهای بزرگ
✨ جستجوی full-text یا فازی (مثل پیشنهادهای تایپشده اشتباه) انجام بدی
دادهها رو بر اساس 📊 اولویت و امتیاز (Relevance) مرتب کنی
راهاندازی Elasticsearch در جنگو
برای اینکه الستیک سرچ رو به پروژه جنگوت اضافه کنی، مراحل زیر رو دنبال کن:
1⃣ نصب Elasticsearch
اول از همه باید الستیک سرچ رو نصب و راهاندازی کنی. میتونی از Docker استفاده کنی:
docker run -d -p 9200:9200 -e "discovery.type=single-node" elasticsearch:8.10.1
2⃣ نصب کتابخونهها
پکیجهایی مثل
elasticsearch-dsl
و django-elasticsearch-dsl
کار رو خیلی راحت میکنن: pip install elasticsearch-dsl django-elasticsearch-dsl
3⃣ تنظیمات اولیه
توی فایل تنظیمات جنگو (settings.py)، آدرس و پورت الستیک سرچ رو مشخص کن:
ELASTICSEARCH_DSL = {
'default': {
'hosts': 'localhost:9200'
}
}
ایجاد ایندکس و اتصال به مدلها
حالا باید دادههات رو به الستیک سرچ وصل کنی و ایندکس بسازی.
ایجاد Document برای مدلها
خب Document جاییه که مدلهای جنگو رو به ایندکس الستیک سرچ وصل میکنه:
from django_elasticsearch_dsl import Document
from django_elasticsearch_dsl.registries import registry
from .models import Article
@registry.register_document
class ArticleDocument(Document):
class Index:
name = 'articles' # اسم ایندکس
class Django:
model = Article
fields = [
'title',
'content',
'published_at',
]
ایندکس کردن دادهها
برای انتقال دادههای فعلی به الستیک سرچ:
python manage.py search_index --rebuild
پیادهسازی جستجو در ویوها
حالا بیا یه API برای جستجو درست کنیم:
ویو جستجو
from django.http import JsonResponse
from .documents import ArticleDocument
def search_articles(request):
query = request.GET.get('q', '')
results = ArticleDocument.search().query("multi_match", query=query, fields=["title", "content"])
data = [hit.to_dict() for hit in results]
return JsonResponse({'results': data})
اضافه کردن به URLها
from django.urls import path
from .views import search_articles
urlpatterns = [
path('search/', search_articles, name='search_articles'),
]
ادامه پست بعدی
#python #django #web
🔆 CHANNEL | GROUP
1❤17👍4
احتمالا با خودتون میگید که پس چی الستیک سرچ رو انقدر متمایز و خفن میکنه؟ این قابلیت هارو که همه ی ابزار های جستجو دارن که 😐
خب باید بگم که الستیک سرچ این قابلیت هارو داره :
1️⃣ جستجوی فازی (Fuzzy Search) و تصحیح خودکار
اگه کاربر اشتباه تایپ کنه، مثل *"javascipt"* بهجای *"javascript"*، الستیک سرچ میتونه همچنان نتیجه درست رو پیدا کنه. این قابلیت برای تجربه کاربری خیلی مهمه.
2️⃣ تحلیل و پردازش متن
الستیک سرچ از analyzerهای قدرتمند استفاده میکنه تا متنها رو قبل از جستجو پردازش کنه. مثلاً میتونه متنها رو به کلمات کلیدی تبدیل کنه، ریشهیابی کنه (stemming)، یا حتی از زبانهای مختلف پشتیبانی کنه.
3️⃣ پشتیبانی از جستجوهای جغرافیایی (Geo-Search)
اگه نیاز داری دادههای مرتبط با مکان رو جستجو کنی، مثل «نزدیکترین رستورانها»، الستیک سرچ این امکان رو داره که جستجو بر اساس فاصله جغرافیایی رو هم انجام بده.
4️⃣ مقیاسپذیری (Scalability)
این ابزار برای کار با Big Data طراحی شده. میتونه بهصورت توزیعشده روی چندین سرور کار کنه، پس اگه حجم دادهها زیاد بشه، همچنان سرعتش حفظ میشه.
5️⃣ قابلیت Aggregation و تحلیل دادهها
الستیک سرچ فقط برای جستجو نیست. میتونی باهاش دادهها رو تحلیل کنی. مثلاً:
شمارش تعداد رکوردها
میانگین یا مجموع یک فیلد خاص
دستهبندی دادهها (مثل نمودارهای pie chart یا histogram)
این قابلیت شبیه کارکرد یه ابزار تحلیل داده (Analytics) عمل میکنه.
6️⃣ جستجوی چندزبانه
با پشتیبانی از زبانهای مختلف، میتونی متنهای فارسی، انگلیسی یا حتی زبانهای دیگه رو بهصورت بومی جستجو کنی. برای هر زبان میتونی تنظیمات اختصاصی مثل تحلیلگرهای متنی (Text Analyzer) تعریف کنی.
ـ7️⃣ Real-Time Indexing
یکی از تفاوتهای بزرگ الستیک سرچ با دیتابیسهای سنتی، امکان بهروزرسانی لحظهای ایندکسهاست. اگه رکورد جدیدی به سیستم اضافه بشه، فوراً توی جستجوها نمایش داده میشه.
ـ8️⃣ Score و Relevance هوشمند
نتایج جستجو بر اساس امتیاز (Score) مرتب میشن. مثلاً اگه یه کلمه توی عنوان یه مقاله باشه، اهمیت بیشتری نسبت به کلمهای که توی متن هست داره. این باعث میشه نتایج دقیقتری بگیری.
9️⃣ پشتیبانی از پایپلاین دادهها (Ingest Pipelines)
اگه بخوای دادهها رو قبل از ذخیرهسازی تغییر بدی (مثل فرمتکردن تاریخ یا حذف کاراکترهای خاص)، میتونی از Ingest Pipelines استفاده کنی. این قابلیت شبیه preprocessor عمل میکنه.
0⃣1⃣ اکوسیستم گسترده
الستیک سرچ فقط یه موتور جستجو نیست. بخشی از مجموعه Elastic Stack (ELK) هست که شامل این ابزارهاست:
Kibana:
برای ویژوالسازی دادهها و داشبوردهای حرفهای
Logstash:
برای پردازش و انتقال دادهها
Beats:
برای جمعآوری داده از منابع مختلف
1⃣1⃣ پشتیبانی از Query DSL
الستیک سرچ یه زبان اختصاصی برای تعریف کوئریها داره به اسم Query DSL. این زبان انعطاف زیادی داره و میتونی حتی پیچیدهترین جستجوها رو باهاش انجام بدی.
خب باید بگم که الستیک سرچ این قابلیت هارو داره :
1️⃣ جستجوی فازی (Fuzzy Search) و تصحیح خودکار
اگه کاربر اشتباه تایپ کنه، مثل *"javascipt"* بهجای *"javascript"*، الستیک سرچ میتونه همچنان نتیجه درست رو پیدا کنه. این قابلیت برای تجربه کاربری خیلی مهمه.
2️⃣ تحلیل و پردازش متن
الستیک سرچ از analyzerهای قدرتمند استفاده میکنه تا متنها رو قبل از جستجو پردازش کنه. مثلاً میتونه متنها رو به کلمات کلیدی تبدیل کنه، ریشهیابی کنه (stemming)، یا حتی از زبانهای مختلف پشتیبانی کنه.
3️⃣ پشتیبانی از جستجوهای جغرافیایی (Geo-Search)
اگه نیاز داری دادههای مرتبط با مکان رو جستجو کنی، مثل «نزدیکترین رستورانها»، الستیک سرچ این امکان رو داره که جستجو بر اساس فاصله جغرافیایی رو هم انجام بده.
4️⃣ مقیاسپذیری (Scalability)
این ابزار برای کار با Big Data طراحی شده. میتونه بهصورت توزیعشده روی چندین سرور کار کنه، پس اگه حجم دادهها زیاد بشه، همچنان سرعتش حفظ میشه.
5️⃣ قابلیت Aggregation و تحلیل دادهها
الستیک سرچ فقط برای جستجو نیست. میتونی باهاش دادهها رو تحلیل کنی. مثلاً:
شمارش تعداد رکوردها
میانگین یا مجموع یک فیلد خاص
دستهبندی دادهها (مثل نمودارهای pie chart یا histogram)
این قابلیت شبیه کارکرد یه ابزار تحلیل داده (Analytics) عمل میکنه.
6️⃣ جستجوی چندزبانه
با پشتیبانی از زبانهای مختلف، میتونی متنهای فارسی، انگلیسی یا حتی زبانهای دیگه رو بهصورت بومی جستجو کنی. برای هر زبان میتونی تنظیمات اختصاصی مثل تحلیلگرهای متنی (Text Analyzer) تعریف کنی.
ـ7️⃣ Real-Time Indexing
یکی از تفاوتهای بزرگ الستیک سرچ با دیتابیسهای سنتی، امکان بهروزرسانی لحظهای ایندکسهاست. اگه رکورد جدیدی به سیستم اضافه بشه، فوراً توی جستجوها نمایش داده میشه.
ـ8️⃣ Score و Relevance هوشمند
نتایج جستجو بر اساس امتیاز (Score) مرتب میشن. مثلاً اگه یه کلمه توی عنوان یه مقاله باشه، اهمیت بیشتری نسبت به کلمهای که توی متن هست داره. این باعث میشه نتایج دقیقتری بگیری.
9️⃣ پشتیبانی از پایپلاین دادهها (Ingest Pipelines)
اگه بخوای دادهها رو قبل از ذخیرهسازی تغییر بدی (مثل فرمتکردن تاریخ یا حذف کاراکترهای خاص)، میتونی از Ingest Pipelines استفاده کنی. این قابلیت شبیه preprocessor عمل میکنه.
0⃣1⃣ اکوسیستم گسترده
الستیک سرچ فقط یه موتور جستجو نیست. بخشی از مجموعه Elastic Stack (ELK) هست که شامل این ابزارهاست:
Kibana:
برای ویژوالسازی دادهها و داشبوردهای حرفهای
Logstash:
برای پردازش و انتقال دادهها
Beats:
برای جمعآوری داده از منابع مختلف
1⃣1⃣ پشتیبانی از Query DSL
الستیک سرچ یه زبان اختصاصی برای تعریف کوئریها داره به اسم Query DSL. این زبان انعطاف زیادی داره و میتونی حتی پیچیدهترین جستجوها رو باهاش انجام بدی.
🔆 CHANNEL | GROUP
❤10👍4
سلام دوستان 👋
اگه با پایتون API توسعه داده باشید، حتماً میدونید که پیادهسازی pagination هرچند سخت نیست، اما توی پروژههای مختلف ممکنه وقتگیر و تکراری بشه.
برای همین یه پکیج مینیمال و کاربردی به اسم Pagify نوشتم که مدیریت pagination رو برای شما راحتتر و منعطفتر میکنه.
چی داره براتون؟
پشتیبانی از روشهای مختلف Pagination:
مثل Offset، Cursor، و Page-based.
سادگی در استفاده:
فقط با چند خط کد میتونید نیازهای pagination پروژهتون رو برطرف کنید.
مستقل از فریمورک:
چه تو پروژههای ساده پایتونی، چه با فریمورکهایی مثل Flask و FastAPI، بهراحتی میتونید ازش استفاده کنید.
قابلیت شخصیسازی بالا:
تنظیمات و رفتارهاش قابل تغییر و تطبیق با پروژه شماست.
مستندات کامل و شفاف:
شروع کار با Pagify رو ساده و سریع میکنه.
پروژه اوپنسورسه!
خیلی خوشحال میشم اگه ایدهای دارید یا میخواید فیچر جدیدی اضافه کنید، توی توسعه این پکیج مشارکت کنید.
ـGitHub رو ببینید، تست کنید، و نظراتتون رو باهام درمیون بذارید:
مشاهده Pagify در GitHub
اگه به دردتون خورد، ستاره یادتون نره ⭐
منتظر بازخوردهای ارزشمند شما هستم. 😊
اگه با پایتون API توسعه داده باشید، حتماً میدونید که پیادهسازی pagination هرچند سخت نیست، اما توی پروژههای مختلف ممکنه وقتگیر و تکراری بشه.
برای همین یه پکیج مینیمال و کاربردی به اسم Pagify نوشتم که مدیریت pagination رو برای شما راحتتر و منعطفتر میکنه.
چی داره براتون؟
پشتیبانی از روشهای مختلف Pagination:
مثل Offset، Cursor، و Page-based.
سادگی در استفاده:
فقط با چند خط کد میتونید نیازهای pagination پروژهتون رو برطرف کنید.
مستقل از فریمورک:
چه تو پروژههای ساده پایتونی، چه با فریمورکهایی مثل Flask و FastAPI، بهراحتی میتونید ازش استفاده کنید.
قابلیت شخصیسازی بالا:
تنظیمات و رفتارهاش قابل تغییر و تطبیق با پروژه شماست.
مستندات کامل و شفاف:
شروع کار با Pagify رو ساده و سریع میکنه.
هدف این پکیج اینه که توی مدیریت pagination وقت کمتری بذارید و روی بخشهای اصلی پروژه تمرکز کنید.
پروژه اوپنسورسه!
خیلی خوشحال میشم اگه ایدهای دارید یا میخواید فیچر جدیدی اضافه کنید، توی توسعه این پکیج مشارکت کنید.
ـGitHub رو ببینید، تست کنید، و نظراتتون رو باهام درمیون بذارید:
مشاهده Pagify در GitHub
اگه به دردتون خورد، ستاره یادتون نره ⭐
منتظر بازخوردهای ارزشمند شما هستم. 😊
#package #python
🔆 CHANNEL | GROUP
GitHub
GitHub - Mohammad222PR/pagify: Pagify is a simple yet flexible Python package for implementing various pagination methods in any…
Pagify is a simple yet flexible Python package for implementing various pagination methods in any dataset or collection. With support for offset, cursor, and page number pagination, Pagify offers a...
1👍14❤3⚡2🔥1
بنظرتون چه پکیجی میتونه کارما دولوپر هارو ساده تر و حرفه ای تر کنه ؟ 🤔
❤6
Ninja Learn | نینجا لرن
سلام دوستان 👋 اگه با پایتون API توسعه داده باشید، حتماً میدونید که پیادهسازی pagination هرچند سخت نیست، اما توی پروژههای مختلف ممکنه وقتگیر و تکراری بشه. برای همین یه پکیج مینیمال و کاربردی به اسم Pagify نوشتم که مدیریت pagination رو برای شما راحتتر…
ممنون میشم روی این رپو استار بزنید که دیده شه 🙂 ❤️
❤6⚡3👎2
💎 ـPartial Functions در پایتون 💎
تا حالا شده یه تابع بنویسی که پر از آرگومان باشه و همیشه بخوای یه سری از اون آرگومانها مقدار ثابتی داشته باشن؟ مثلا فرض کن توی یه پروژه مدام داری درخواست HTTP میفرستی و همیشه متد رو روی
🔎 ـPartial Functions چی هست؟
خیلی ساده، Partial Function بهت اجازه میده یه نسخه سفارشیشده از تابع اصلی بسازی که یه سری از آرگومانهاش از قبل مقداردهی شده. این کار با
🧠 چرا Partial Functions مفیدن؟
✅ سادگی و تمیزی کد: به
✅ کاهش خطا:
✅ ایجاد نسخههای شخصیسازیشده از توابع:
🛠️ چطور Partial Functions بسازیم؟
اینجا
🚀 کاربردهای Partial Functions
1⃣ سادهسازی توابع با آرگومانهای زیاد
وقتی توابع زیادی با پارامترهای تکراری داری، Partial Functions میتونه کمکت کنه:
2⃣ انعطاف بیشتر با توابع دیگر
ـPartial Functions میتونه با توابعی مثل
3⃣ بهبود خوانایی کد در سیستمهای بزرگ
وقتی پروژههات پیچیده میشن، Partial Functions بهت کمک میکنن توابعی بسازی که واضحترن:
⚖️ مقایسه با دیگر روشها
ـPartial Functions یه جایگزین سبکتر برای تعریف کلاسهای خاص یا توابع جدیده. اما وقتی منطق خیلی پیچیدهای داری یا نیاز به شرطهای مختلف هست، بهتره به جای Partial Functions از کلاسها یا Wrapper Functions استفاده کنی.
✍️ جمعبندی
فهمیدیم Partial Functions ابزاری ساده اما قدرتمند در پایتون هستن که میتونن کدهای تکراری رو حذف کنن و انعطاف بالایی بهت بدن.
امید وارم مفید بوده باشه :)
تا حالا شده یه تابع بنویسی که پر از آرگومان باشه و همیشه بخوای یه سری از اون آرگومانها مقدار ثابتی داشته باشن؟ مثلا فرض کن توی یه پروژه مدام داری درخواست HTTP میفرستی و همیشه متد رو روی
POST
میذاری. به جای تکرار این مقدار ثابت، Partial Functions به کمکت میان و کدتو خیلی حرفهایتر میکنن. 🔎 ـPartial Functions چی هست؟
خیلی ساده، Partial Function بهت اجازه میده یه نسخه سفارشیشده از تابع اصلی بسازی که یه سری از آرگومانهاش از قبل مقداردهی شده. این کار با
functools.partial
انجام میشه. 🧠 چرا Partial Functions مفیدن؟
✅ سادگی و تمیزی کد: به
جای تکرار، یه بار آرگومان ثابت رو تعریف میکنی.
✅ کاهش خطا:
آرگومانهای ثابت توی یه جای مشخص مقداردهی میشن.
✅ ایجاد نسخههای شخصیسازیشده از توابع:
بدون نیاز به تعریف تابع جدید.
🛠️ چطور Partial Functions بسازیم؟
from functools import partial
def multiply(x, y):
return x * y
double = partial(multiply, y=2)
print(double(5)) # خروجی: 10
اینجا
double
نسخهای از multiply
شده که مقدار y
همیشه 2
هست. فقط لازمه x
رو بهش بدی. 🚀 کاربردهای Partial Functions
1⃣ سادهسازی توابع با آرگومانهای زیاد
وقتی توابع زیادی با پارامترهای تکراری داری، Partial Functions میتونه کمکت کنه:
def send_request(method, url, headers, data):
# ارسال درخواست
pass
post_request = partial(send_request, method='POST')
post_request(url='/api/data', headers={}, data={})
2⃣ انعطاف بیشتر با توابع دیگر
ـPartial Functions میتونه با توابعی مثل
map
و filter
خیلی خوب کار کنه: from functools import partial
def power(base, exponent):
return base ** exponent
square = partial(power, exponent=2)
numbers = [1, 2, 3, 4]
squared_numbers = list(map(square, numbers))
print(squared_numbers) # خروجی: [1, 4, 9, 16]
3⃣ بهبود خوانایی کد در سیستمهای بزرگ
وقتی پروژههات پیچیده میشن، Partial Functions بهت کمک میکنن توابعی بسازی که واضحترن:
from functools import partial
def logger(log_level, message):
print(f"[{log_level}] {message}")
info_logger = partial(logger, log_level='INFO')
info_logger("This is an info message") # خروجی: [INFO] This is an info message
⚖️ مقایسه با دیگر روشها
ـPartial Functions یه جایگزین سبکتر برای تعریف کلاسهای خاص یا توابع جدیده. اما وقتی منطق خیلی پیچیدهای داری یا نیاز به شرطهای مختلف هست، بهتره به جای Partial Functions از کلاسها یا Wrapper Functions استفاده کنی.
✍️ جمعبندی
فهمیدیم Partial Functions ابزاری ساده اما قدرتمند در پایتون هستن که میتونن کدهای تکراری رو حذف کنن و انعطاف بالایی بهت بدن.
#python #programing
🔆 CHANNEL | GROUP
👌13❤2🔥2
یکی از قشنگ ترین ویدیو هایی که توی این چند وقته دیدم این ویدیو بوده.
یه خلاصه بگم یه یارویی (branzy) همراه با رفیقش (Rek) توی بازی ماینکرفت میان اینترنت رو میسازن 😃
و تستش میکنن و جالب اینه کارمیکنه
پیشنهاد میکنم حتما ببینیدش
یه خلاصه بگم یه یارویی (branzy) همراه با رفیقش (Rek) توی بازی ماینکرفت میان اینترنت رو میسازن 😃
و تستش میکنن و جالب اینه کارمیکنه
پیشنهاد میکنم حتما ببینیدش
#پیشنهادی
🔆 CHANNEL | GROUP
YouTube
We Built the Internet in Minecraft
Rekrap and I were bored, so we decided to build the internet in Minecraft. That's it...
Rek's Channel: @rekrap2
Hope you like it :)
--------------------------------------
I'm terrible at social media!
Twitter: @branzytweets
Twitch: https://www.twitch.tv/branzylive
Rek's Channel: @rekrap2
Hope you like it :)
--------------------------------------
I'm terrible at social media!
Twitter: @branzytweets
Twitch: https://www.twitch.tv/branzylive
⚡6
دوستان پست فردا درمورد AWS هستش 😁
اگه استقبال بشه درمورد سرویس هاش بیشتر و دقیق تر توضیح میدم
اگه استقبال بشه درمورد سرویس هاش بیشتر و دقیق تر توضیح میدم
🔥15❤5