8 Oct 2024, 05:41 UTC≈2,550 views17 reactionsread 7 August 2026 ✅ آشنایی با MRO در پایتون (Method Resolution Order)
MRO یا Method Resolution Order در پایتون ترتیب جستجوی کلاسهای پایه رو برای فراخوانی متدها مشخص میکنه. این موضوع مخصوصاً توی وراثت چندگانه خیلی مهمه چون مشخص میکنه که وقتی یک متد فراخوانی میشه، پایتون از کدوم کلاس استفاده کنه.
🔎 چرا MRO مهمه؟
وقتی یک متد توی چند کلاس پایه (Parent Classes) وجود داشته باشه، پایتون از الگوریتم C3 Linearization استفاده میکنه تا تر…
👍13❤4
19 Jun 2024, 11:12 UTC≈3,200 views15 reactionsread 7 August 2026 Slots (Special Methods - Part 1)
✓ یک special attribute به نام slots هستش که با استفاده کردن از اون در کلاس هامون و بخصوص دیتا کلاس ها پرفورمنس استفاده از از کلاس رو چه در قسمت حافظه و چه در قسمت سرعت دسترسی به instance attribute ها افزایش بدهیم. به کد زیر دقت کنید، ابتدا سعی داریم یک دیتا کلاس ایجاد کنیم و نحوه ی استفاده از dict را نیز بیان کنیم.
class DataClass:
def __init__(self, d1, d2):
self.d1 = d…
👍11👎3🤔1
15 Jun 2024, 21:38 UTC≈2,350 views14 reactionsread 7 August 2026 ✅Namedtupe for dataclasess
✓ فرض کنید که ما برای تعداد زیادی شخص داریم که از هر کدام اطلاعات کمی مثل، نام، کدملی، شماره تلفن خواهیم داشت. چون این اطلاعات ذاتا تغییر پذیر نیستند یا به عبارتی دیگر immutable اند، لازم نیست از دیکشنریها برای تعریف اطلاعات هر شخص استفاده کنیم. میدانیم که درواقع چیزی بین توپلها و دیکشنریها لازم است. بهترین انتخاب در این بین named tuple ها هستند. اینها درواقع از کلاس توپلها ارثبری خ…
👏10❤1👌1👍1👎1
8 Jun 2024, 09:31 UTC≈1,760 views7 reactionsread 7 August 2026 Data class in python- part 2
✓ در part1 دیتا کلاس بوسیلهی دکوراتور dataclass@ را معرفی کردیم. دقت شود همانطور که گفته شد، Annotation type فقط برای ایجاد این کلاس اجباری است. اما دیتا کلاس به روشی که در پست قبل ایجاد کردیم صرفا Instance attribute ها را ایجاد میکند. برای ایجاد class attributeها میتوان از []ClassVar استفاده کرد.
from dataclasess import dataclass
from typing import ClassVar
@dataclass(frozen=True)
…
👍4❤3
2 Jun 2024, 08:48 UTC≈1,780 views15 reactionsread 7 August 2026 ✅ا Decorators یکی از قابلیتهای پیشرفته و بسیار قدرتمند پایتون هستند که برای تغییر یا افزایش قابلیتهای توابع یا کلاسها استفاده میشوند، بدون اینکه نیاز به تغییر کد اصلی آنها باشد. بیایید به طور کامل با این مفهوم آشنا شویم.
◀️ا Decorators در واقع توابعی هستند که به عنوان ورودی یک تابع دیگر را میگیرند و یک تابع جدید برمیگردانند که معمولاً رفتار تابع ورودی را تغییر میدهد یا بهبود میبخشد.
چرا از Decorators استفاد…
❤11👍2🔥2
1 Jun 2024, 06:30 UTC≈1,330 views11 reactionsread 7 August 2026 Data Class in python- part 1
✓ طبق تعریف کتاب وزین Fluent Python میتوان تعریف جالبی برای دیتا کلاسها ارائه داد.
Python offers a few ways to build a simple class that is just a collection of fields, with little or no extra functionality. p163
✓ درواقع دیتا کلاسها ذاتا ظرفی هستن برای نگهداری دادهها، متدها در این نوع کلاس نقش بسیار کمرنگی ایفا میکنند یا حتی میتوان گفت، هیچ نقشی ندارند. مگر این که کاربرد متدی به…
❤9👍2
29 May 2024, 11:30 UTC≈5,000 views13 reactionsread 7 August 2026 ✅ تفاوتهای کلیدی بین لیستها و تاپلها
قابلیت تغییر (Mutability)
لیستها:
قابل تغییر (Mutable): لیستها میتوانند پس از ایجاد تغییر کنند؛ میتوانید عناصر را اضافه، حذف یا جایگزین کنید.
my_list = [1, 2, 3]
my_list[0] = 4 # تغییر اولین عنصر
my_list.append(5) # اضافه کردن عنصر جدید
print(my_list) # خروجی: [4, 2, 3, 5]
تاپلها:
غیرقابل تغییر (Immutable): پس از ایجاد یک تاپل، نمیتوانید …
👍13
29 May 2024, 05:34 UTC978 views12 reactionsread 7 August 2026 ✅ تاپلها در پایتون: مفاهیم پیشرفته
1️⃣ تعریف تاپل
تاپلها یک نوع داده ترتیبی در پایتون هستند که بر خلاف لیستها غیرقابل تغییر (immutable) هستند. تاپلها با استفاده از پرانتزها تعریف میشوند و عناصر آنها با کاما جدا میشوند.
my_tuple = (1, 2, 3, 'hello', 4.5)
print(my_tuple) # خروجی: (1, 2, 3, 'hello', 4.5)
2️⃣ دسترسی به عناصر تاپل
میتوانید به عناصر تاپل با استفاده از اندیسها دسترسی پیدا کنید. اندیسها از صف…
❤7👍4🤯1
28 May 2024, 14:12 UTC854 viewsread 7 August 2026 Poll
سلام رفقا امیدوارم حالتون خوب باشه
چه مدل پست بیشتر دوست دارید؟
- اطلاعات عمومی برنامه نویسی43%
- ترفند های ساده پایتون و لینوکس37%
- ترفند های حرفه ای پایتون و لینوکس66%
- توضیحات عمومی زبان پایتون و لینوکس32%
- هر چیزی بجز اینا😁😁8%
The shares total 186%, above 100: this poll accepts more than one answer per voter. No per-option vote count is published, so the number of voters who chose each option is not derivable and is not shown.
28 May 2024, 13:48 UTC935 views7 reactionsread 7 August 2026 ✅ لیستها در پایتون: مفاهیم پیشرفته
1️⃣ برش (Slicing)
برش به شما اجازه میدهد تا زیرمجموعهای از لیست را بدست آورید. سینتکس برش به صورت [start:stop:step] است.
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# برش ساده
print(my_list[2:5]) # خروجی: [2, 3, 4]
# برش با گام
print(my_list[1:8:2]) # خروجی: [1, 3, 5, 7]
# برش از ابتدا تا یک نقطه
print(my_list[:4]) # خروجی: [0, 1, 2, 3]
# برش از یک نقطه تا انتها
print(my_…
❤5👍2
25 May 2024, 07:22 UTC997 views14 reactionsread 7 August 2026 Type Hinting in Python- part 2
✓ اما برای تایپ هینت انواع دادهی دیگر مثل list , set و dict ها و ... خواهیم داشت:
x: list[int] = [1]
x: set[int] = {6, 7}
x: dict[str, float] = {"num": 2.0}
x: tuple[str, float] = ("yes", 7.5)
✓ نکته: برای دیکشنری درون آکولاد تایپ key و value دیکشنری با str و float مشخص شده است. یعنی دیکشنری که در x ریخته میشود باید از این قانون تبعیت کند تا mypy اررور برنگرداند.
✓ دقت شود که کد ب…
👍11❤3
23 May 2024, 10:27 UTC984 views14 reactionsread 7 August 2026 Type Hinting in python - Part1
*قابل ذکر است که مطالب این پست از نسخهی ۳.۵ به بعد در پایتون قابل استفاده است.
ابتدا مفهوم static type checker رو بررسی میکنیم تا متوجه موضوع بشویم. در ویکی پدیا به روشنی بیان شده است که:
Static type checking is the process of verifying the type safety of a program based on analysis of a program's text (source code).
👨🏻💻در واقع safety کد رو از منظر text و نه زمانی که قرار است ران شود…
👍14
Showing the 12 most recent of 20 posts we hold for @lython. View and reaction counts are the latest single reading for each post, not a live figure, and a recent post is still accumulating both. A view count marked ≈ was rounded by Telegram before we ever saw it — t.me prints views in full below 1,000 and to three significant figures above, so ≈1,200,000 means somewhere between 1,150,000 and 1,249,999. Unmarked counts are exact. Text is reproduced from the public post preview and truncated for length.