Cadena f multilínea en Python
Estoy intentando escribir código compatible con PEP-8 para un proyecto doméstico y tengo una línea con una cadena f que tiene más de 80 caracteres:
def __str__(self):
return f'{self.data} - {self.time},\nTags: {self.tags},\nText: {self.text}'
Estoy intentando dividirlo en diferentes líneas de la forma más pitónica , pero la única respuesta que realmente funciona es un error en mi linter.
Código de trabajo:
def __str__(self):
return f'{self.date} - {self.time},\nTags:' + \
f' {self.tags},\nText: {self.text}'
Producción:
2017-08-30 - 17:58:08.307055,
Tags: test tag,
Text: test text
El linter piensa que no estoy respetando el E122 de PEP-8 , ¿hay alguna manera de conseguir que la cadena sea correcta y que el código sea compatible?
De la Guía de estilo para el código Python :
La forma preferida de ajustar líneas largas es mediante el uso de la continuación de línea implícita de Python entre paréntesis, corchetes y llaves.
Teniendo esto en cuenta, lo siguiente resolvería su problema de forma compatible con PEP-8.
return (
f'{self.date} - {self.time}\n'
f'Tags: {self.tags}\n'
f'Text: {self.text}'
)
Las cadenas de Python se concatenarán automáticamente cuando no estén separadas por una coma, por lo que no es necesario llamar explícitamente a join()
.
creo que sería
return f'''{self.date} - {self.time},
Tags: {self.tags},
Text: {self.text}'''