LYTHON Telegram 61
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 اررور برنگرداند.

✓ دقت شود که کد بالا برای پایتون 3.9 به بعد است و برای نسخه‌های قبل از آن از کد زیر استفاده می‌شود که موارد زیر ابتدا باید از ماژول typing ایمپورت شوند.
from typing import List, Set, Dict, Tuple
x: List[int] = [1]
x: Set[int] = {6, 7}
x: Dict[str, float] = {"field": 2.0}
x: Tuple[int, str, float] = (3, "yes", 7.5)

✓ قابل ذکر است که تایپ هینت متد‌ها در یک کلاس، به شکل توابع تعریف می‌گردد که قبلا توضیح داده شد.

✓ به کد زیر دقت کنید که مفهوم تایپ هینت Any را می‌رساند. Any به معنای هر توع تایپی در نظر گرفته می‌شود. در واقع اگر هیچ تایپی برای متغیری تعریف نگردد، برای آن Any لحاظ می‌گردد. برای مثال می‌توان به متغیر x لیست، دیکشنری کلاس تابع و یا هر ورودی دیگری داد. دو تابع زیر که تعریف شده در واقع از نظر mypy یکی است.
from typing import Any

def func1(x):
    pass

def func2(x: Any):
    pass

✓ اما به نظر بخش جالب ماجرا در تایپ هینت Callable است. این تایپ برای وقتی مفید است که ورودی یک تابع، یک یا چند تابع دیگر است. آنوقت می‌توان توع ورودی را بوسیله‌ی Callable  با mypy چک کرد.
سینتکس آن به شکل زیر است.
Callable[[arg1, arg2, ...], return type]

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

def func1(a: int, b: str) -> None:
    pass

def func2(results: Any) -> None:
    pass

def func3(d: Callable[[int, str], None], c: Callable[[Any], None]) -> None:
    pass


@lython



tgoop.com/lython/61
Create:
Last Update:

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 اررور برنگرداند.

✓ دقت شود که کد بالا برای پایتون 3.9 به بعد است و برای نسخه‌های قبل از آن از کد زیر استفاده می‌شود که موارد زیر ابتدا باید از ماژول typing ایمپورت شوند.
from typing import List, Set, Dict, Tuple
x: List[int] = [1]
x: Set[int] = {6, 7}
x: Dict[str, float] = {"field": 2.0}
x: Tuple[int, str, float] = (3, "yes", 7.5)

✓ قابل ذکر است که تایپ هینت متد‌ها در یک کلاس، به شکل توابع تعریف می‌گردد که قبلا توضیح داده شد.

✓ به کد زیر دقت کنید که مفهوم تایپ هینت Any را می‌رساند. Any به معنای هر توع تایپی در نظر گرفته می‌شود. در واقع اگر هیچ تایپی برای متغیری تعریف نگردد، برای آن Any لحاظ می‌گردد. برای مثال می‌توان به متغیر x لیست، دیکشنری کلاس تابع و یا هر ورودی دیگری داد. دو تابع زیر که تعریف شده در واقع از نظر mypy یکی است.
from typing import Any

def func1(x):
    pass

def func2(x: Any):
    pass

✓ اما به نظر بخش جالب ماجرا در تایپ هینت Callable است. این تایپ برای وقتی مفید است که ورودی یک تابع، یک یا چند تابع دیگر است. آنوقت می‌توان توع ورودی را بوسیله‌ی Callable  با mypy چک کرد.
سینتکس آن به شکل زیر است.
Callable[[arg1, arg2, ...], return type]

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

def func1(a: int, b: str) -> None:
    pass

def func2(results: Any) -> None:
    pass

def func3(d: Callable[[int, str], None], c: Callable[[Any], None]) -> None:
    pass


@lython

BY روزمرگی های یک برنامه نویس


Share with your friend now:
tgoop.com/lython/61

View MORE
Open in Telegram


Telegram News

Date: |

The imprisonment came as Telegram said it was "surprised" by claims that privacy commissioner Ada Chung Lai-ling is seeking to block the messaging app due to doxxing content targeting police and politicians. Some Telegram Channels content management tips The group also hosted discussions on committing arson, Judge Hui said, including setting roadblocks on fire, hurling petrol bombs at police stations and teaching people to make such weapons. The conversation linked to arson went on for two to three months, Hui said. End-to-end encryption is an important feature in messaging, as it's the first step in protecting users from surveillance. Telegram has announced a number of measures aiming to tackle the spread of disinformation through its platform in Brazil. These features are part of an agreement between the platform and the country's authorities ahead of the elections in October.
from us


Telegram روزمرگی های یک برنامه نویس
FROM American