TGViewer
| کانال توسعه‌دهندگان پایتون | | کانال توسعه‌دهندگان پایتون | @developixpython · 7.69K subscribers
Post #109 3.82K
عملگر والروس (Walrus Operator) 🦭

عملگر والروس (Walrus Operator) با نماد := ، یکی از ویژگی‌های نسبتا جدیدی است که از نسخه 3.8 پایتون به آن اضافه شده است. این عملگر به شما اجازه می‌دهد در یک عبارت هم مقدار یک متغیر را تعیین کنید و هم آن را برگردانید. این ویژگی باعث می‌شود کدهای شما کوتاه‌تر و خواناتر شوند، به خصوص در مواردی که نیاز به مقداردهی اولیه یک متغیر درون یک عبارت شرطی یا حلقه دارید.


⁉️ چرا به آن والروس می‌گویند؟
نام "والروس" به دلیل شباهت ظاهری این عملگر به عاج‌های یک والروس (شیر دریایی) به آن داده شده است.


⁉️ چگونه کار می‌کند؟
کار این عملگر انجام دستورات، و در عین حال assign کردن مقدار به متغیر می باشد.
این عملگر در حالت استاندارد باید در داخل پرانتز قرار بگیرد. به نحوه استفاده و سینتکس این عملگر توجه کنید:
(variable := expression)


ساده‌ترین مثال برای درک این عملگر، استفاده از آن در یک عبارت شرطی است:
if (n := len("hello")) > 4:
    print(f"String length is greater than 4: {n}")


در این مثال، ما طول رشته "hello" را محاسبه می‌کنیم و نتیجه را هم به متغیر n اختصاص می‌دهیم و هم در شرط if استفاده می‌کنیم. این کار باعث می‌شود که ما مجبور نباشیم قبل از شرط، طول رشته را در یک متغیر جداگانه ذخیره کنیم.


🆚 مقایسه با روش سنتی
بدون استفاده از عملگر والروس، برای انجام همین کار باید به صورت زیر عمل می‌کردیم:
n = len("hello")

if n > 4:
    print(f"String length is greater than 4 : {n}")

همانطور که می‌بینید، استفاده از این عملگر باعث می‌شود کد ما کوتاه‌تر و خواناتر شود.


✅ کاربردهای دیگر عملگر والروس

0️⃣ حلقه‌های while:

while (line := f.readline()):

# پردازش هر خط از فایل



1️⃣ فهم‌پذیرتر کردن کد:
if (match := re.search(pattern, text)):
    print(match.group())



2️⃣ کاهش تکرار کد:
if (numbers := [1, 2, 3]) and len(numbers) > 2:

# انجام کاری با لیست numbers



❇️ نمونه کد

🔴 نمونه کد بدون استفاده از عملگر والرس:
while True:
    command = input("> ")
    if command == 'exit':
        break
    print("Your command was:", command)


🟢 نمونه کد با استفاده از عملگر والرس:
while (command := input("> ")) != "exit":
    print("Your command was:", command)



⚠️ نکات مهم

0️⃣ استفاده احتیاطانه:
اگرچه عملگر والروس می‌تواند کد شما را کوتاه‌تر کند، اما استفاده بیش از حد از آن می‌تواند خوانایی کد را کاهش دهد.

1️⃣ پایتون 3.8 به بعد:
این عملگر از نسخه 3.8 پایتون به بعد اضافه شده است و در استفاده از نسخه های قدیمی تر به سینتکس ارور برخورد خواهید کرد.


♻️ جمع‌بندی
والروس یک عملگر قدرتمند برای نوشتن کدهای پایتون بهینه و خواناتر است. با استفاده از این عملگر، می‌توانید کدهای خود را کوتاه‌تر کرده و از تکرار کد جلوگیری کنید. با این حال، مهم است که از این عملگر به صورت مناسب استفاده کنید تا خوانایی کد شما کاهش نیابد.

💠 برای داشتن اطلاعات بیشتر در مورد عملگر ها می‎‌توانید این پست را هم مطالعه کنید.

🔖 #Python, #پایتون, #Operatos, #عملگر

👤 LightNess

💎 Channel: @DevelopixPython
  • 🔥 8
  • 👍 7
  • ❤ 4
More from @developixpython
  1. Sep 30, 2026💠 نسخه جدید کتابخانه FastAPI منتشر شده است 🔸 ارتقا از نسخه 0.141.1 به 0.142.2 🔖 #fastap…
  2. Sep 8, 2026آرگومان پیش‌فرض لیست؛ باگ خفن ولی بی‌سر‌و‌صدا 😅 خیلی‌ها (حتی حرفه‌ای‌ها) یه زمانی این سوت…
  3. Sep 6, 2026🔥 پروژه: مهارت‌های تحقیق آکادمیک با Claude Code اگر برای پروژه‌های پایتونی مقاله، مستندات…
  4. Aug 24, 2026خیلی وقت‌ها با باگ‌های عجیب روبه‌رو می‌شویم که فقط به خاطر یک فاصلهٔ اضافی یا خط‌جدید ته ر…
  5. Aug 12, 2026🔥 پروژه: ‏DSPy فریم‌ورک برنامه‌نویسی LLM DSPy یه فریم‌ورک پایتونی از آزمایشگاه NLP اس…
  6. Aug 9, 2026مدیریت درست resource مثل فایل، connection دیتابیس یا lock، کلی باگ و Memory Leak بالقوه را…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →