Python 3: преимущества и недостатки языка Python интерпретируемый язык программирования


class Point: x: int y: int def



Download 7,02 Mb.
bet43/59
Sana23.02.2022
Hajmi7,02 Mb.
#159718
1   ...   39   40   41   42   43   44   45   46   ...   59
Bog'liq
Документ Microsoft Office Word

class Point:

  • x: int

  • y: int

  • def __init__(self, x: int, y: int):

  • self.x = x

  • self.y = y

    Контроль типов с использованием аннотаций


    Для проверки можно использовать уже знакомый нам инструмент mypy. Напишем вот такой код.

    1. a:int = 10

    2. b:int = 15


    3. def sq_sum(v1:int, v2:int) -> int:

    4. return v1**2 + v2**2


    5. print(sq_sum(a, b))

    Сохраним его в файле с именем work.py и запустим mypy для анализа.

    1. python -m mypy work.py

    Если не указывать дополнительные ключи, то окно консоли будет чистым, т.к. mypy не найдет никаких ошибок в вашем коде.
    Но если заменить первую строку

    1. a: int = 10

    на такую:

    1. a = 10.3

    и вновь запустить mypy, то увидим вот такое сообщение:
    work.py:7: error: Argument 1 to “sq_sum” has incompatible type “float”; expected “int”
    При этом, естественно, код будет выполняться без всяких проблем, потому что интерпретатор Python в данном случае не обращает внимание на аннотации.

    Отложенная проверка аннотаций


    До выхода Python 3.7 определение типов в аннотациях происходило во время импорта модуля, что приводило к проблеме. Например, если выполнить следующий код:

    1. class Rectangle:

    2. def __init__(self, height: int, width: int, color: Color) -> None:

    3. self.height = height

    4. self.width = width

    5. self.color = color

    То возникнет ошибка NameError: name ‘Color’ is not defined. Она связана с тем, что переменная colorимеет тип Color, который пока ещё не объявлен.
    В таком случае, мы можем указать тип Color в кавычках, но это не очень удобно.


    1. Download 7,02 Mb.

      Do'stlaringiz bilan baham:
  • 1   ...   39   40   41   42   43   44   45   46   ...   59




    Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
    ma'muriyatiga murojaat qiling

    kiriting | ro'yxatdan o'tish
        Bosh sahifa
    юртда тантана
    Боғда битган
    Бугун юртда
    Эшитганлар жилманглар
    Эшитмадим деманглар
    битган бодомлар
    Yangiariq tumani
    qitish marakazi
    Raqamli texnologiyalar
    ilishida muhokamadan
    tasdiqqa tavsiya
    tavsiya etilgan
    iqtisodiyot kafedrasi
    steiermarkischen landesregierung
    asarlaringizni yuboring
    o'zingizning asarlaringizni
    Iltimos faqat
    faqat o'zingizning
    steierm rkischen
    landesregierung fachabteilung
    rkischen landesregierung
    hamshira loyihasi
    loyihasi mavsum
    faolyatining oqibatlari
    asosiy adabiyotlar
    fakulteti ahborot
    ahborot havfsizligi
    havfsizligi kafedrasi
    fanidan bo’yicha
    fakulteti iqtisodiyot
    boshqaruv fakulteti
    chiqarishda boshqaruv
    ishlab chiqarishda
    iqtisodiyot fakultet
    multiservis tarmoqlari
    fanidan asosiy
    Uzbek fanidan
    mavzulari potok
    asosidagi multiservis
    'aliyyil a'ziym
    billahil 'aliyyil
    illaa billahil
    quvvata illaa
    falah' deganida
    Kompyuter savodxonligi
    bo’yicha mustaqil
    'alal falah'
    Hayya 'alal
    'alas soloh
    Hayya 'alas
    mavsum boyicha


    yuklab olish