2017-10-17 4 views
3

나는이 질문이 정말로 내가 코딩을 소비하는 시간의 좋은 부분을 차지하므로 닫히거나/downvoted되지 않기를 바랍니다.코드의 단어를 줄이는 가장 좋은 표준은 무엇입니까?

파이썬에 더 중점을 둔 개발자로서 나는 PEP8 표준을 따르려고 노력하지만 일부 변수 이름에서는 나에게 정말 까다로워졌습니다.

단어를 TEMPERATURE라고 가정 해 보겠습니다. 내가 온도의 목록을 저장하는 변수를 가지고 싶다면

, 나는 그것을 이름을 것입니다 : 코드가 더 복잡수록

temperature_list = [] 

그러나,의 내가 temperature_list와 함수를 호출 할 수 있다고 가정 해 봅시다 인수로 :

calling_function(variable_with_long_name, temperature_list, another_long_name_variable) 

이 리드 어디 당신은 명확하게 볼 수 있습니다 ...

그래서 나는 temp_listtemperature_list의 이름을 변경하기로 결정. 좋은 선택으로 들릴지 모르지? 나는 또한 목록에 임시 파일을 저장하려면

제외

...

, 내가 가지고 발생할 수 있습니다

temp_list = [] 
temp_file_list = [] 

그것은 내 변수가 장난 시작 지점에 올 수 있습니다 뒤따라 코드를 약간 까다롭게 만들었습니다.

컨벤션이란 무엇이며 프로그래머는 그러한 상황에 직면했을 때 어떤 행동을 취합니까? 특정 명사에 대한 좋은 변수 이름의 사례집과 같이 이러한 경우에 대한 참조가 있습니까?

- 당신이 그것을 닫는 투표하면 편집

, 적어도 이유를 설명! - '

+4

PEP 8은 "구현보다는 사용법 반영"이라고 말하며, 대부분의 경우 변수 이름에 유형 이름을 포함하지 않아야 함을 나타냅니다. 이름을 단순히'온도'로 Pluralizing하는 것은 독자에게 "이것은 반복 될 수 있고 아마도 인덱싱 될 수있는 비 스칼라 객체입니다."라고 표시하기에 충분해야합니다. 이는 보통의 경우에 충분합니다. (내 자신의 주관적 해석이기 때문에 논평과 답글로 글을 올리면 대답이 아닙니다.) – Kevin

+1

"TEMPERATURE"와 "TEMPORARY"와 같은 단어가 필요한 당신의 경력에서 일어날 횟수는 매우 적습니다. 실제 세계에서 긴 이름은 합리적인 코드를 작성하면 큰 문제가되지 않습니다. –

+0

@Kevin 답장으로 의견을 다시 게시해야합니다. –

답변

1

일반적으로 너는 너무 길지 않지만 변수를 올바르게 설명하는 영리한 이름을 찾아야합니다. 이 작업이 실패하거나 유사한 작업을 수행하는 변수가 너무 많아서 (너무 가까이있는 이름을 사용하는 경우) 문서화 문자열 또는 주석의 변수를 설명하고 짧은 이름을 지정할 수 있습니다 (a, b 등이 아닌 여전히 의미있는 이름). 당신이 정말로 가끔 자신을 피할 수없는 긴 변수 이름에 대한 필요성이있을 때 ...)

def function(a, b): 
    """ 
    l_variable used for bla bla, 
    lo_variable is good for bla bla. 
    """ 

    l_variable = 12 
    lo_variable = 123 
    lon_variable = 1234 # This is an integer bla bla 

, 나는 코드의 목적을 파괴하지 않으면 서 낮은 선 길이를하려고합니다. 예를 들어 함수 호출에서 줄 바꿈 (예 : 사용자의 경우)

def f(a, b, c): 
    print a + b + c 

this_is_a_long_variable_name = "Stack" 
this_is_an_even_longer_variable_name = "Over" 
this_is_the_longest_variable_name_in_this_example = "flow" 

f(this_is_a_long_variable_name, 
    this_is_an_even_longer_variable_name, 
    this_is_the_longest_variable_name_in_this_example)