Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 31, 2022 10:03:23

Areostar
Зарегистрирован: 2018-06-27
Сообщения: 162
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос по аннотации типов

Возможно и проблемы тут никакой нет но чтото не вьеду

Допустим для примера. Создаём класс представляющий геометрическую точку

 class Point:
    def __init__(self, _values: list = [0, 0, 0], _label: str = '',
                 _frozen: bool = False) -> None:
        """constractor of class Point"""
        self._x = _values[0]
        self._y = _values[1]
        if len(_values) > 3:
            self._z = _values[2]
        else:
            self._z = 0
...............

в классе надо бы определить метод вычисляющий растояние до другой точки. тоест как аргумент метод должен принемать обьект своего же класса. как то так

     def distance(self, other: ???) -> float:
        """"calc distance between two points"""
        return 0.0


как мне класс обозначить здёсь
other: ???
??

Офлайн

#2 Дек. 31, 2022 16:46:00

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9874
Репутация: +  854  -
Профиль   Отправить e-mail  

Вопрос по аннотации типов

  
>>> class Point:
...     def __init__(self, x, y, z):
...         self.x, self.y, self.z = x, y, z
...     def distance(self, point):
...         out = ((self.x - point.x) ** 2
...                + (self.y - point.y) ** 2
...                + (self.z - point.z) ** 2) ** 0.5
...         return out
... 
>>> a = Point(1, 1, 1)
>>> b = Point(2, 2, 2)
>>> 
>>> print(a.distance(b))
1.7320508075688772
>>>

  
>>> class Point:
...     def __init__(self, x, y, z):
...         self.x, self.y, self.z = x, y, z
...     def distance(self, point: Point) -> float:
...         out = ((self.x - point.x) ** 2
...                + (self.y - point.y) ** 2
...                + (self.z - point.z) ** 2) ** 0.5
...         return out
... 
>>> a = Point(1, 1, 1)
>>> b = Point(2, 2, 2)
>>> 
>>> print(a.distance(b))
1.7320508075688772
>>>



Офлайн

#3 Фев. 6, 2023 19:53:07

Areostar
Зарегистрирован: 2018-06-27
Сообщения: 162
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос по аннотации типов

У меня Pycharm не пропускает….

Офлайн

#4 Фев. 6, 2023 23:56:00

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9874
Репутация: +  854  -
Профиль   Отправить e-mail  

Вопрос по аннотации типов

Areostar
У меня Pycharm не пропускает
Покажи, что пишет.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version