Функция __str__ ведет себя по-разному в редакторе Pycharm и Vim - PullRequest
0 голосов
/ 01 апреля 2020
class Point:
      def __init__(self, x, y, z):
            self.x = x
            self.y = y
            self.z = z
      def __str__(self):
            return f'point : ({self.x}, {self.y}, {self.z})' #works perfectly in pycharm but shows syntax error in vim
            return 'point' + ':' + '(' + self.x + ',' + self.y + ',' + self.z + ')' # shows error that cannot convert int to string implicitly

p1 = Point(4, 2, 9)
print(p1)

Мой желаемый вывод должен быть в формате point : (4, 2, 9).

Внесение изменений в метод __str__, но операторы возврата не работают в vim

1 Ответ

0 голосов
/ 02 апреля 2020

Python f-строки были введены только в Python 3.6, поэтому, если вы используете Python 3.5, они не будут работать.

Эквивалентная функция в Python до 3.6 метод format().

Таким образом, вместо:

return f'point : ({self.x}, {self.y}, {self.z})'

Вы можете использовать:

return 'point : ({self.x}, {self.y}, {self.z})'.format(self=self)

Если вы хотите быть совместимым с Python 3.5 или снизить.

...