일부 오래된 코드를 되살려서 Python7 및 3 표준과 일치하도록 리팩토링하려고했습니다.서식 지정 전에 두 문자열을 결합 할 때 % s 서식이 + 연산자보다 앞에 있습니다.
많은 문자열 연산이 "Something was %s in here" % "merged"
구문을 사용했습니다.
.format("merged")
이 스와핑의 과정을 시작이 행 팝업 때까지 큰 일 :
cmd = 'cat %s[0-9] | compress.sh - | ' % filename[:-2] + cmd
지금 내가이에서 철저하게보고 생각으로 변환 :
cmd = 'cat {}[0-9] | compress.sh - | '.format(filename[:-2] + cmd)
커맨드 라인이 추가로 작성되었을 때, 마지막으로 |
은 경고 신호를 유발하지 않았습니다.
그러나, 머리 많이 긁힘 및 디버깅 나중에 내가 발견 올바른 전환해야한다 :
cmd = 'cat {}[0-9] | compress.sh - | {}'.format(filename[:-2], cmd)
난 당신이 아마 여기 "%s" % ("x",) + cmd
을해야한다고 알고 있어요,하지만이 코드 적은 결코 없었다 나는 떠났다.
저는 동료 나 친구에게 물었습니다. 그들은 모두 같은 것을 가정했습니다. "수학 연산자가 문자열을 결합하는 함수 연산자보다 먼저 나온 것 같아요.".
분명히 경우 아니라 내가 궁금하네요,"%s" % "x"
이 + "y"
전에가는 이유가
?
기술적으로 나에게 말하면 추가 연산 (순수하게 수학을 현명한 것으로 여기는)은 함수 호출에 앞서야합니까?
왜 파이썬 2는 추가를 문자열로 병합하는 함수에 대한 초침 연산으로 취급합니까?
오늘 배웠습니다! OP가 아니지만 어쨌든 고마워요 :-) – Gormador
큰 소리로 들릴 때 완전히 이해가됩니다. 링크는 훌륭한 btw, 여러 가지 이유로 편리하게 올 것이다. 고맙습니다! – Torxed