코딩에서 의도를 표현하십시오 - 수명이 짧은 변수

짧은 금요일 포스팅. 구현 의도와 이를 코드에 반영하는 방법에 대해 조금 이야기해 보겠습니다.

더 많이 코딩하고 다른 사람들의 코드를 더 많이 검토할수록 몇 가지 작은 일들이 저를 약간 "스트레스"하기 시작하지만 😄 긍정적인 스트레스입니다.

다른 사람들이 변수의 범위를 읽고 이해하는 방법을 고려했습니까? 점점 더 변수를 명명할 때 내 의도를 표현하려고 합니다. 그리고 아니요, 저는 긴 이름이나 짧은 비밀 이름에 대해 말하는 것이 아닙니다. 여기서는 실행/구현에서 변수가 가질 시간과 길이(범위)에 대해 이야기하고 있습니다. 봅시다. 다음 코드 블록을 상상해보십시오.

var1 = # some logic

# some logic defined in 2 or 3 lines 
# using var1

# the code continues on and var1 is never used again.


또 다른 더 엄격한 예는 다음과 같습니다.

var1 = # some long-line logic about 80 chars
# one shorter line using var1

# the code continues on and var1 is never used again.


이 줄을 읽을 때 구현의 다른 곳에서는 var1가 사용되지 않는다는 것을 어떻게 알 수 있습니까? 당신은 (당신이 그것을 검색하고 그것이 다른 곳에 존재하지 않는다는 것을 발견할 때까지) 그렇지 않습니다. 그래서 여기에 질문이 옵니다. var1가 다음 줄의 직접적인 범위에서만 사용된다는 것을 독자에게 어떻게 알릴 수 있습니까?

내가 하는 일은 다음과 같습니다. 변수 이름에 _ 접두사를 붙입니다. 이와 같이 _var1 를 읽을 때 해당 범위가 후속 짧은 구현에서 종료된다는 것을 알고 있습니다. 물론 _ 대신 _var1 만 사용할 수 있다고 주장할 수 있습니다. 그것은 사실이며 당신이 옳습니다. 그러나 때로는 목적을 부여하기 위해 변수의 이름을 지정하는 것이 좋습니다. 또한 순수한 밑줄_은 사용되지 않는 변수에 가장 자주 사용되기 때문입니다.
_var1를 사용하여 다음 줄에서 쉽게 읽을 수 있도록 일부 논리의 결과를 임시로 저장할 수도 있습니다. 다음은 다음 논리 단계를 단순화하기 위해 _tmp를 사용하는 my 에서 사용한 예입니다.

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


이것이 이번 금요일의 짧은 포스팅의 전부입니다. 귀하의 의견을 알려주십시오.
건배,

좋은 웹페이지 즐겨찾기