Объясните, пожалуйста, нотацию
Всем доброго времени суток!
Объясните, пожалуйста, нотацию в данной программе.
Что означает к примеру def setCoords(self, sp: Point, ep: Point):?
Значит ли это, что в качестве атрибутов данного метода подаются экземпляры класса?
Я вот что-то не совсем понимаю как это происходит. Можно ли где-то об этом почитать?
Заранее огромное спасибо! Прошу прощения, не понимаю как убрать код под спойлер...
class Point:
def __init__(self, x=0, y=0):
self.__x = x
self.__y = y
def __str__(self):
return f"({self.__x}, {self.__y})"
def isDigit(self):
if (isinstance(self.__x, int) or isinstance(self.__x, float)) and \
(isinstance(self.__y, int) or isinstance(self.__y, float)):
return True
return False
def isInt(self):
if isinstance(self.__x, int) and isinstance(self.__y, int):
return True
return False
class Prop:
def __init__(self, sp: Point, ep: Point, color: str = "red", width: int = 1):
self._sp = sp
self._ep = ep
self._color = color
self._width = width
def setCoords(self, sp: Point, ep: Point):
if sp.isDigit() and ep.isDigit():
self._sp = sp
self._ep = ep
else:
print("Координаты должны быть числами")
class Line(Prop):
def drawLine(self):
print(f"Рисование линии: {self._sp}, {self._ep}, {self._color}, {self._width}")
def setCoords(self, sp: Point, ep: Point):
if sp.isInt() and ep.isInt():
self.__sp = sp
self.__ep = ep
else:
print("Координаты должны быть целочисленными")
Ответы (1 шт):
Вместо
def func(par):
возможно писать например
def func(par: int) -> str:
что значит, что ожидаемый тип (т.е. класс) параметра par есть int (целое число) и ожидаемый тип значения, которое функция возвращает, есть str (строка).
Питон сам не проверяет, если это исполнено, но это может быть полезно
для документации (тоже для автоматически генерированной документации некоторыми программами, например Sphinx),
для генерирования предупреждений некоторыми программами для работы с Питоном, например PyCharm.
Значит, в вашей программе например в определении
def __init__(self, sp: Point, ep: Point, color: str = "red", width: int = 1):
- параметры
spиep«хотят быть» экземплярами классаPoint, - ключевой параметр
colorтипаstr(строкой) - и ключевой параметр
widthтипаint(целым числом).
Для самого Питона эта команда имеет то же самое значение как
def __init__(self, sp, ep, color="red", width=1):