나는 국내 프로젝트를 위해 PEP-8 호환 코드를 작성하려고하는데 (파이썬 세계에서 첫 번째 단계임을 인정해야 함) 길이가 80 자 이상인 f- 문자열이 있습니다.
-self.text의 점 근처에있는 얇은 실선이 80 자 표시입니다. (미리보기가없는 슬픈 링크에 대해 죄송하지만 게시하려면 10 명 이상의 담당자가 있어야합니다)
나는 대부분의 다른 라인으로 분할하기 위해 노력하고있어 파이썬 방법 만이 실제로 작동 aswer 내 린터에 대한 오류입니다
작업 코드 :
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
linter는 내가 PEP-8의 E122를 존중하지 않는다고 생각하는데, 문자열을 올바르게 가져오고 코드를 준수하는 방법이 있습니까?
답변
에서 파이썬 코드에 대한 스타일 가이드 :
긴 줄을 감싸는 가장 좋은 방법은 괄호, 대괄호 및 중괄호 안에 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