암시적 문자열 및 바이트 연결이 혼동되어서는 안 됩니다.

 

Python은 컴파일 시에 인접한 문자열 또는 바이트 리터럴을 연결합니다. “a” “b”는 “ab”와 동일하다는 의미입니다. 이것은 때때로 긴 문자열을 여러 줄로 분할하는 데 사용됩니다. 그러나 암시적 문자열 연결도 매우 혼란스러울 수 있습니다.
다음 문맥에서는 쉼표를 잊어버렸음을 나타낼 수 있습니다.

  • 두 문자열이 같은 줄에 있을 때는 잘못된 형식의 튜플처럼 보입니다. 괄호는 필수적으로 작성할 필요가 없으며 쉼표만 작성할 수 있습니다.
  • 문자열이 list, set 또는 tuple에 있을 때.

규칙을 어긴 코드

def func():
    return "item1" "item2"  # 규칙을 어긴 코드

["1",
 "2"  # 규칙을 어긴 코드
 "3",
 "a very very very"  # 규칙을 어긴 코드
 "very very long string",
 "4"]

규칙을 준수한 해결책

def func():
    return "item1", "item2"

["1",
 "2",
 "3",
 "a very very very" +
 "very very long string",
 "4"]

예외

문자열 연결에 대한 가시적인 이유가 있는 경우 문제가 발생하지 않습니다:

  • 두 문자열에 사용된 따옴표가 다른 경우. 따옴표를 피하는 데 사용할 수 있습니다.
  • 문자열 또는 바이트가 다른 접두사를 가질 때, 즉 f 문자열의 경우 “f”, 원시 문자열의 경우 “r”, 유니 코드의 경우 “u”이며 일반 문자열의 경우 접두사가 없습니다.
  • 긴 코드 줄을 피하기 위해 문자열이 눈에 띄게 분할되는 경우. (예: 첫 번째 문자열은 공백, 구두점 또는 \n으로 끝납니다)

If you like SONARKUBE, don’t forget to give me a star. :star2:

원문으로 바로가기

Star This Project