Ответ 1
PEP8-совместимое решение: форматирование строки
Фактически PEP8 говорит:
Длинные линии могут быть разбитые на несколько строк путем обертывания выражений в скобках . Эти следует использовать вместо использования обратной косой черты для продолжения строки. Убедитесь, что линия продолжена правильно.
Итак, я полагаю, ваш код должен выглядеть так:
(
myOjbect
.doStuf()
.doMoreStuf()
.goRed()
.goBlue()
.die()
)
Альтернативные решения: разделение на отдельные операторы
Судя по синтаксису, возможны два варианта относительно значений, возвращаемых каждым вызовом метода:
- Каждый метод (возможно, кроме
die()
, который не требуется, поскольку его результат не используется) возвращает измененный экземпляр (тот же самый экземпляр, на который он был вызван). - Каждый метод (все же,
die()
не требуется для этого) возвращает копию экземпляра, на который он был вызван.
Решение для изменяемых объектов (методы возвращают исходный экземпляр)
В первом случае (при возврате того же экземпляра) решение разделить более длинные строки на несколько операторов:
myObject.doStuf()
myObject.doMoreStuf()
myObject.goRed()
myObject.goBlue()
myObject.die()
Пример реального мира включает изменяемые объекты:
my_stuff = []
my_stuff.append('laptop') # my_stuff == ['laptop']
my_stuff.append('jacket') # my_stuff == ['laptop', 'jacket']
my_stuff.append('apple') # my_stuff == ['laptop', 'jacket', 'apple']
(хотя list.append()
ничего не возвращает, просто для согласованности и явно указывает, что он изменен)
Решение для неизменяемых объектов (методы возвращают измененную копию)
В втором случае (при возврате копии) решение сделать подобное:
myObject = myObject.doStuf()
myObject = myObject.doMoreStuf()
myObject = myObject.goRed()
myObject = myObject.goBlue()
myObject.die()
Пример реального мира включает неизменяемые объекты:
name = '-Tadek-'
name = name.strip('-') # name == 'Tadek'
name = name.lower() # name == 'tadek'
name = name.replace('k', 'ck') # name == 'tadeck'