2017-03-26 11 views
0

가독성과 이식성을 향상시키기 위해 파이썬 코드 용 모듈을 작성하는 경우 간단한 반환 값을위한 메소드 나 변수를 작성하는 것이 더 좋습니까? 왜? 파이썬 메소드가 메모리에서 더 많은 공간을 활용하거나 변수를 사용합니까?파이썬 모듈 - 메소드 대 변수

실제로는 변경되지 않습니다 많이 ... module.item()module.item 참고 : 모듈을 사용하여 을 기록 할 것입니다 코드의 가독성을 고려하십시오. 모듈 자체의 가독성이 아닙니다. 예를 들어

:

#colors.py 

def red(): 
    return [255,0,0] 

def green(): 
    return [0,255,0] 

def blue(): 
    return [0,0,255] 

VS

#colors.py 

red = [255,0,0] 
green = [0,255,0] 
blue = [0,0,255] 
+1

왜 이러한 기능을 작성 하시겠습니까? 튜토리얼을 사용하는 편이 좋을 것입니다. 부분적으로는 변경 가능성 때문에 (또는 이름이 붙은 튜플이므로 필요에 따라'colors.red.blue'를 사용하여 값에 액세스 할 수 있습니다.) 그렇지 않으면 두 번째 버전이 훨씬 더 의미가 있습니다. – jonrsharpe

+0

그런 기능을 쓸만한 가치가 있는지 실마리가 없습니다. 그러므로 질문. 지식을 위해서 다른 사람들이 말하거나할만한 것. – jkessluk

+2

memory_profiler를 사용하여 디버깅 해보십시오 https://pypi.python.org/pypi/memory_profiler –

답변

2

값이 변하지 않는 경우,이 같이 결코 단순히 변수를 사용하여 값을 결정하는 어떤 논리가 될 필요가 없습니다. 함수를 호출하면 모듈을 사용하여 값을 결정하기 위해 일부 연산을 실행해야한다는 것을 사용자에게 알려줍니다. 아무 것도하지 않고 방금 값을 반환하는 경우 오해의 소지가 있으며 혼란 스럽습니다.

+0

충분히 공정하고 말이됩니다. – jkessluk

+0

당신이 받아 들일 만하다고 판단 할만한 답이 있습니까? – Julien

+0

답변으로 사용할 계획입니다. 다른 누군가가 뭔가 따라 오는 경우에 대비해서 조금 시간을 할애하고 있습니다. 귀하의 답변은 매우 간단하며 질문에 다소 답할 수 있습니다. – jkessluk

0

구체적인 예를 들면 입니다. 빨간색은 항상 [255,0,0]이 될 것이므로 왜 변경 시키면 될까요? 튜플을 사용합니다.

또한 파이썬에서의 호출 함수는 상대적으로 느리기 때문에 모듈에 대해서는 사용하지 않을 것입니다. 특히 코드가 충분히 복잡 해지면 더욱 그렇습니다.

하지만 그 값을 저장하는 이유는 모듈을 읽는 모든 사람들이 그 물건의 작동 방식을 알게 될 것이기 때문입니다. [255,0,0]은 빨간색이고, [200,0,0]은 더 어둡습니다. 모듈이 그러한 사소한 값을 사용하지 않는 한, 모듈을 사용하는 사람들이 red 또는 red()을 만들 수있게하려면, 스스로 할 수 있어야합니다.

+0

개념은 색상의 시연보다 더 중요합니다. 예, 사람들은 빨간색 = (255,0,0)을 알아야합니다. 그리고 예, 튜플은 목록보다 예제에서 더 잘 작동합니다. 그러나 오일러 - 마스 헤 로니 상수와 같은 것이 있다면, 누구나 알지 못할 수도 있습니다. 나는 내 모듈에서 그것을 저장할 수 있었고 내 프로그램에서 나중에 반환 될 수 있었기 때문에 .57721을 암기 할 필요가 없었습니다. 이 예제는 단순한 예제 일뿐입니다. 어떤 코드에서 어딘가에서 수행해야 할 작업의 최종 복제가 아닙니다. – jkessluk

+0

그런 경우 변수를 사용하는 것이 더 좋습니다.제가 말하고자하는 것은, 불필요한 변수를 정의하는 것, 또는 상수를 반환하는 것 이상으로 만들지 않는 함수가 어떤 방식 으로든 코드를 향상시키는 것이 아니라는 것입니다. –