읽을 수 있는 문자열 형식 만들기

며칠 전 다른 사람의 코드를 읽는 동안 이 예제를 실행했습니다(변수 이름이 some... 또는 var...로 수정됨).

somejob = "{}{}{}{}{}{}{}{}".format(
    rundir,
    "/",
    fileroot,
    "_",
    someobj.somemethod(run["run_dir"]),
    "_",
    str(some_var),
    "w"
    )


이 예에 대한 설명으로 옳지 않은 것은?

먼저 somejob 문자열의 최종 모양을 실제로 이해할 수 있습니까? 나에게 그것은 단지 완전히 비밀스럽습니다. 몇{}이 있습니까?

그렇다면 이 경우의 문제점은 무엇이며 어떻게 개선할 수 있습니까?

이 문자열 형식 지정 예제의 문제는 상수가 변수로 전달되어 문자열의 모양을 숨기고 있다는 것입니다. 개발자가 기본 문자열에 상수 하위 문자열을 정의하면 읽기가 훨씬 쉬워집니다.

somejob = "{}/{}_{}_{}w".format(
    rundir,
    fileroot,
    someobj.somemethod(run["run_dir"]),
    str(somevar),
    )


그래도 이 특별한 경우에 우리는 paths 를 사용하고 있기 때문에 더 나아가서 하드코딩된 pathlib.Path 대신 / 사용을 지지합니다.

# reduce the long call to a short temporary variable
_tmp = someobj.somemethod(run["run_dir"])
somejob = Path(
    rundir,
    f'{fileroot}_{_tmp}_{somevar}w',
    )


저는 이러한 수정이 코드 읽기를 개선하고 유지 관리자의 수명을 용이하게 한다고 진정으로 믿습니다. 어떻게 생각해? 마지막 예제가 첫 번째 예제보다 더 잘 읽습니까?

건배,

좋은 웹페이지 즐겨찾기