Estoy tratando de escribir código compatible con PEP-8 para un proyecto doméstico (debo admitir que esos son mis primeros pasos en el mundo de Python) y tengo una cadena f que tiene más de 80 caracteres de largo
- la línea delgada y sólida cerca del punto en selftext es la marca de 80 caracteres. (Lo siento por el enlace triste sin vista previa, pero debo tener más de 10 representantes para publicarlos)
Estoy tratando de dividirlo en diferentes líneas de la manera más pitónica , pero la única respuesta que realmente funciona es un error para mi linter.
Código de trabajo:
def __str__(self):
return f'{self.date} - {self.time},\nTags:' + \
f' {self.tags},\nText: {self.text}'
Salida:
2017-08-30 - 17:58:08.307055,
Tags: test tag,
Text: test text
El linter piensa que no estoy respetando E122 de PEP-8, ¿hay alguna manera de hacer que la cadena sea correcta y el código sea compatible?
python
string
python-3.6
f-string
Búho
fuente
fuente
f
cuerdas no se discuten allí.Respuestas:
De la Guía de estilo para código Python :
Dado esto, lo siguiente resolvería su problema de una manera 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
join()
.fuente
creo que sería
return f'''{self.date} - {self.time}, Tags: {self.tags}, Text: {self.text}'''
fuente
Puede utilizar comillas triples simples o dobles comillas triples, pero coloque una f al principio de la cadena:
Cotizaciones Triple Individual
return f'''{self.date} - {self.time}, Tags:' {self.tags}, Text: {self.text}'''
Cotizaciones Triple Doble
return f"""{self.date} - {self.time}, Tags:' {self.tags}, Text: {self.text}"""
Observe que no necesita usar "\ n" porque está usando una cadena de varias líneas.
fuente
Como lo menciona @noddy, el enfoque también funciona para la expresión de asignación de variable:
var1 = "foo" var2 = "bar" concat_var = (f"First var is: {var1}" f" and in same line Second var is: {var2}") print(concat_var)
debería darte:
First var is: foo and in same line Second var is: bar
fuente