ویدیو آموزش عملگر walrus در پایتون

September 2021

در این ویدیو شما با بزرگترین تغییر پایتون 3.8 آشنا میشوید: عبارات تخصیصی. عبارات تخصیصی با ساختار جدید := معرفی شدند. این عبارت به نام walrus (والروس) شناخته میشوند که به معنی شیردریایی است.

 

عبارت walrus به شما امکان می دهد که یک مقدار را در یک عبارت اختصاص دهید و برگردانید. به عنوان مثال، اگر می خواهید به یک متغیر اختصاص دهید و مقدار آن را چاپ کنید، معمولاً کاری شبیه به این انجام می دهید:

>>> walrus = False
>>> print(walrus)
False

 

در پایتون 3.8 ، اجازه دارید این دو عبارت را با استفاده از عملگر walrus در یک ترکیب کنید:

>>> print(walrus := True)
True
>>> type(walrus)
<class 'bool'>

 

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

 

یکی از الگوهایی که برخی از نقاط قوت اپراتور walrus را نشان می دهد حلقه هایی است که در آن شما نیاز به مقداردهی اولیه و به روز رسانی یک متغیر دارید. به عنوان مثال، کد زیر از کاربر درخواست می کند تا زمانی که quit را تایپ می کند:

# write_something.py

inputs = list()
current = input("Write something: ")
while current != "quit":
    inputs.append(current)
    current = input("Write something: ")

 

این کد کمتر از ایده آل است. شما عبارت input() را تکرار می کنید و به نحوی باید قبل از درخواست کاربر، current را به لیست اضافه کنید. راه حل بهتر این است که یک حلقه نامحدود را تنظیم کرده و از break برای توقف حلقه استفاده کنید:

# write_something.py

inputs = list()
while True:
    current = input("Write something: ")
    if current == "quit":
        break
    inputs.append(current)

 

این کد معادل کد بالا است ، اما از تکرار جلوگیری می کند و به نحوی خطوط را در ترتیب منطقی تری نگه می دارد. اگر از عبارت walrus استفاده می کنید ، می توانید این حلقه را بیشتر ساده کنید:

# write_something.py

inputs = list()
while (current := input("Write something: ")) != "quit":
    inputs.append(current)

 

این کد شرط را به خط while برمی گرداند، جایی که باید باشد. با این حال، در حال حاضر چندین اتفاق در آن خط رخ می دهد، بنابراین خواندن صحیح آن کمی بیشتر تلاش می برد. بهترین قضاوت خود را در مورد زمانی که اپراتور walrus به خوانایی بیشتر کد شما کمک می کند استفاده کنید.

ارسال نظر

تلاش میکنم سوالات شما را در کمتر از یک روز پاسخ بدم

shayan

September 2021

سلام
ویدیو اشتباهی اپلود شده

پاسخ به نظر


امیرحسین بیگدلو

September 2021

سلام
خیلی ممنون از شما. درست شد.