Не могу понять код

Bismar

Новичок
Пользователь
Окт 8, 2023
16
2
3
Что значит эта строка: answer: str = ''

В этом коде:

Python:
class Hero:
    def __len__(self):
        return len(self.__dict__)

    def __str__(self):
        if self.__len__() == 0:
            return ''
        else:
            answer: str = ''
            for key, value in sorted(self.__dict__.items(), key=lambda para: para[0]):
                answer += f'{key}: {str(value)}\n'
            return answer
 

PYDEV

Пользователь
Пользователь
Авг 31, 2023
53
13
8
А чем это: answer: str = ''
отличается от этого: answer = "
Ничем. Только для улучшения читаемости кода. В вашем примере, можно убрать аннотацию. При использовании, например, dataclass
можно применить:
Python:
from dataclasses import dataclass

@dataclass
class Person:
    name: str
    age: int
    height: int
    weight: float
    adult: bool
    work: str

p = Person(
    name="Андрей",
    age=40,
    height=175,
    weight=77.7,
    adult=True,
    work="Дворник"
)
print(p.__dict__)
эт просто пример))
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 639
472
83
аннотация, обозначается тип переменной и начальное значение
 

Bismar

Новичок
Пользователь
Окт 8, 2023
16
2
3
аннотация, обозначается тип переменной и начальное значение
А чем это: answer: str = ''
отличается от этого: answer = "
 

Bismar

Новичок
Пользователь
Окт 8, 2023
16
2
3
Ничем. Только для улучшения читаемости кода. В вашем примере, можно убрать аннотацию. При использовании, например, dataclass
можно применить:
Python:
from dataclasses import dataclass

@dataclass
class Person:
    name: str
    age: int
    height: int
    weight: float
    adult: bool
    work: str

p = Person(
    name="Андрей",
    age=40,
    height=175,
    weight=77.7,
    adult=True,
    work="Дворник"
)
print(p.__dict__)
эт просто пример))
Понял, спасибо.
 
  • Мне нравится
Реакции: PYDEV

Форум IT Специалистов