Найти - Пользователи
Полная версия: Вопрос по аннотации типов
Начало » Python для новичков » Вопрос по аннотации типов
1
Areostar
Возможно и проблемы тут никакой нет но чтото не вьеду

Допустим для примера. Создаём класс представляющий геометрическую точку
 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: ???
??

py.user.next
  
>>> 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
>>>
Areostar
У меня Pycharm не пропускает….
py.user.next
Areostar
У меня Pycharm не пропускает
Покажи, что пишет.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB