Я пытаюсь написать код, совместимый с PEP-8, для домашнего проекта (должен признать, что это мои первые шаги в мире Python), и у меня есть f-строка длиной более 80 символов
- сплошная тонкая линия возле точки на self.text - это отметка 80 знаков. (Извините за грустную ссылку без предварительного просмотра, но у меня должно быть 10+ представителей, чтобы опубликовать их)
Я пытаюсь разбить его на разные строки наиболее питоническим способом, но единственный ответ, который действительно работает, - это ошибка моего линтера
Рабочий код:
def __str__(self):
return f'{self.date} - {self.time},\nTags:' + \
f' {self.tags},\nText: {self.text}'
Вывод:
2017-08-30 - 17:58:08.307055,
Tags: test tag,
Text: test text
Линтер считает, что я не уважаю E122 из PEP-8, есть ли способ получить правильную строку и соответствующий код?
python
string
python-3.6
f-string
Owlzy
источник
источник
f
струны там не обсуждаются.Ответы:
Из Руководства по стилю для кода Python :
Учитывая это, следующее может решить вашу проблему в соответствии с требованиями PEP-8.
return ( f'{self.date} - {self.time}\n' f'Tags: {self.tags}\n' f'Text: {self.text}' )
Строки Python будут автоматически объединяться, если они не разделены запятой, поэтому вам не нужно явно вызывать
join()
.источник
Я думаю было бы
return f'''{self.date} - {self.time}, Tags: {self.tags}, Text: {self.text}'''
источник
Вы можете использовать либо тройные одинарные кавычки, либо тройные двойные кавычки, но поместите f в начале строки:
Тройные одинарные цитаты
return f'''{self.date} - {self.time}, Tags:' {self.tags}, Text: {self.text}'''
Тройные двойные кавычки
return f"""{self.date} - {self.time}, Tags:' {self.tags}, Text: {self.text}"""
Обратите внимание, что вам не нужно использовать «\ n», потому что вы используете многострочную строку.
источник
Как упоминалось @noddy, подход также работает для выражения присваивания переменной:
var1 = "foo" var2 = "bar" concat_var = (f"First var is: {var1}" f" and in same line Second var is: {var2}") print(concat_var)
должен дать вам:
First var is: foo and in same line Second var is: bar
источник