آموزش برنامه نویسی
287 subscribers
64 photos
26 videos
2 files
18 links
جامعه توسعه‌دهندگان ایرانی :
@QCode_ir

کانال دوم - اخبار تکنولوژی - آی تی :
📢 @TechCntr

تعرفه ثبت تبلیغات :
🔺 @QCodeAD
Download Telegram
✔️ استفاده از متد جادویی __call__ در پایتون

متد __call__ در پایتون به شما اجازه می‌دهد تا یک شیء از کلاس خود را مثل یک تابع فراخوانی کنید. این کار می‌تواند در سناریوهایی که نیاز به پردازش پیچیده دارید، بسیار مفید باشد.

فرض کنید می‌خواهیم یک کلاس به نام Multiplier ایجاد کنیم که هر بار شیء آن مثل تابع فراخوانی می‌شود، ورودی‌ها را با یک مقدار خاصی که در ابتدا تنظیم شده، ضرب کند.

class Multiplier:
def __init__(self, factor):
self.factor = factor

def __call__(self, value):
return value * self.factor

# استفاده از کلاس
double = Multiplier(2)
triple = Multiplier(3)

print(double(5)) # خروجی: 10
print(triple(5)) # خروجی: 15


1. متد __init__: عامل (factor) را تنظیم می‌کند.
2. متد __call__: ورودی را با عامل از پیش‌تعریف شده ضرب کرده و نتیجه را برمی‌گرداند.

با این روش، می‌توان از هر شیء کلاس Multiplier به عنوان یک تابع استفاده کرد و در عین حال از ویژگی‌های شیءگرایی بهره برد.

#Python #Programming

☑️@QCode_ir | برنامه نویسی
Please open Telegram to view this post
VIEW IN TELEGRAM
✔️ آشنایی با Walrus Operator در پایتون (به معنی شیرآبی)

در نسخه ۳.۸ پایتون، اپراتوری به نام Walrus Operator (با نماد :=) معرفی شد که هدف آن ساده‌تر کردن کدنویسی در شرایط خاص است. این اپراتور به شما اجازه می‌دهد هم‌زمان یک مقدار را به یک متغیر اختصاص دهید و از آن استفاده کنید.

فرض کنید می‌خواهیم طول کلماتی از یک لیست را بررسی کنیم و فقط کلماتی که طولشان بیش از ۳ کاراکتر است را چاپ کنیم.

بدون Walrus Operator:
words = ["apple", "pie", "banana", "kiwi"]
for word in words:
if len(word) > 3:
print(word)


با Walrus Operator:
words = ["apple", "pie", "banana", "kiwi"]
for word in words:
if (length := len(word)) > 3:
print(f"{word} (length: {length})")


در کد دوم، مقدار طول کلمه (با نام length) محاسبه شده و هم‌زمان در شرط و چاپ استفاده می‌شود، بدون نیاز به محاسبه مجدد.

مثال های دیگر:

حلقه‌های ورودی:
while (user_input := input("Enter something: ")) != "exit":
print(f"You entered: {user_input}")


خواندن از فایل:
with open("data.txt") as file:
while (line := file.readline().strip()):
print(line)


#Python
💻 @qcode_ir | برنامه نویسی
Please open Telegram to view this post
VIEW IN TELEGRAM
✔️چطور محتویات داخل یک شی (Object) را ببینیم؟

وقتی در پایتون با آبجکت‌ها کار می‌کنید، گاهی لازم است تمامی ویژگی‌ها و مقادیر داخلی آن را بررسی کنید. در پایتون، هر آبجکت ویژگی‌ای به نام __dict__ دارد که تمام ویژگی‌های آن آبجکت را به صورت دیکشنری ذخیره می‌کند.

فرض کنید یک کلاس ساده داریم:

class User:
def __init__(self, name, age):
self.name = name
self.age = age
self.skills = ["Python", "Django"]

user = User("Yousef", 27)

print(user.__dict__)

خروجی:
{'name': 'Yousef', 'age': 27, 'skills': ['Python', 'Django']}


#برنامه‌نویسی #پایتون #python

⭐️ @QCode_ir
Please open Telegram to view this post
VIEW IN TELEGRAM
✔️ پیدا کردن کدهای بی‌استفاده در پروژه پایتون با ابزار Vulture 🐍

گاهی اوقات در پروژه‌های پایتون، کدهایی وجود دارند که دیگر استفاده نمی‌شوند، اما همچنان در فایل‌ها باقی مانده‌اند. این کدها می‌توانند شامل توابع، کلاس‌ها یا حتی متغیرهایی باشند که هیچ جایی فراخوانی نمی‌شوند. Vulture یک ابزار فوق‌العاده برای شناسایی این کدهای بی‌استفاده است.

برای نصب این ابزار، کافی است از دستور زیر استفاده کنید:
pip install vulture


برای اجرا، تنها کافی است نام فایل یا پوشه پروژه خود را به Vulture بدهید:
vulture your_project/

این ابزار گزارشی از کدهایی که احتمالاً بی‌استفاده هستند، نمایش می‌دهد.

#برنامه‌نویسی #پایتون #python


⭐️ @QCode_ir
Please open Telegram to view this post
VIEW IN TELEGRAM
✔️ تشخیص عدد زوج در پایتون با یک روش سریع‌تر!

در پایتون معمولاً برای تشخیص عدد زوج از این روش استفاده می‌کنیم:
if num % 2 == 0:

اما یک روش جالب‌تر و بهینه‌تر هم وجود دارد که از عملیات بیتی استفاده می‌کند:
if (num & 1) == 0:

در این روش، عملگر & آخرین بیت عدد را بررسی می‌کند. در نمایش باینری، اعداد زوج همیشه آخرین بیت‌شان 0 است، بنابراین نتیجه‌ی این بررسی 0 می‌شود و تشخیص عدد زوج به‌سادگی انجام می‌گیرد.

این روش در بسیاری از زبان‌های برنامه‌نویسی مثل پایتون، C، C++، جاوا و Go کار می‌کند. چون عملیات بیتی ذاتاً سبک‌تر از مدولوس % است، در برخی زبان‌ها عملکرد سریع‌تری دارد.



#پایتون #Python


⭐️ @QCode_ir
Please open Telegram to view this post
VIEW IN TELEGRAM
✔️ جنگو 5.2 منتشر شد!

نسخه‌ی جدید جنگو (Django 5.2) با ویژگی‌های زیر منتشر شد:

+ ایمپورت خودکار مدل‌ها در شل
+ پشتیبانی از کلیدهای اصلی ترکیبی (Composite Primary Keys) 😲
+ بهبود در نحوه‌ی override کردن BoundField

این نسخه LTS (پشتیبانی طولانی‌مدت) است و تا آوریل 2028 پشتیبانی خواهد شد.

Django 5.2 Release Notes

#Django #Python

⭐️ @QCode_ir
Please open Telegram to view this post
VIEW IN TELEGRAM