2011-01-23 2 views
12

더 짧은 형식이 있습니까?__name__ == '__main__'에 대한 바로 가기 :

if __name__ == '__main__': 

내 의견 :

+3

"지루한 쓰기"- 일반적으로 덜 자주, 최대 한 번 모듈 당 만합니다. "아주 좋아 보이지 않아."- 그래,하지만 너는 살아남을거야. – delnan

+3

나는 그걸로 수 년 동안 살아남 았어,) –

답변

12

PEP299가 솔루션을 제안 이 사마귀, 즉 특별한 함수 이름 __main__을가집니다. 그것은 거부 부분적 이유는

귀도 그는이 (문서, 사용자 습관 등의) 가치가 없다 "년대 변화로 어쨌든 아이디어를 좋아하지 않는 발음 아무것도 특히 이 깨진 없습니다 . " http://www.python.org/dev/peps/pep-0299/

그래서 추함은 적어도 한 귀도 년대 BDFL로, 유지됩니다.

+3

BDFL은 다시 말하지 않습니다! :) –

9

기본적으로 모든 파이썬 프로그래머가 작업을 수행에 아주 좋은 보이지 않는다 또한 쓰기 꽤 지루합니다. 그래서 간단히 그것과 함께 살 수 있습니다. ;)

게다가 스크립트가 항상 응용 프로그램으로 실행되고 모듈로 가져 오지 않는 경우 완전히 생략 할 수 있습니다. 그러나 실제로 필요하지 않더라도 어쨌든 사용하는 것이 좋습니다.

+6

(실제로 질문에 대한 답을주지 않는 대답으로 +6을 즐긴다.) –

+1

어쩌면 나는 PEP를 시작해야 할 것이다. –

+3

@Gerald : PEP299 (와 나의 대답)를 보아라. (그렇지 않으면 깨끗한 언어에 대한 수치심, 새로운 파이썬 프로그래머는 "The Zen of Python"의 첫 번째 줄을 위반하는 구현 세부 사항에 노출됩니다. "아름다운 것은 추한 것보다 낫다") –

1

아니요, 죄송합니다. 멋지지 않지만, 우리가 가진 것입니다.

3

분명히 말하자면 언어가 더러 럽고 상용구가되어 파일간에 복사 및 붙여 넣기되는 모든 것입니다. 그것에 대한 약식은 없습니다.

사마귀와 상투어가 간다하더라도, 적어도 그것은 사소한 것입니다.

3

if'__main__'==__name__:과 같은 의미입니까?

7

이 질문을 한 후, 나는 그것을 해결하기로 결정 :

from automain import * # will only import the automain decorator 

@automain 
def mymain(): 
    print 'this is our main function' 

blog post는 설명을하고 code is on github 및 easy_installed 할 수 있습니다

easy_install automain 
+6

명확하게 파이썬 속임수,이 모듈에 의해 추가 된 복잡성은 덜 유용합니다. 이 모듈을 사용하는 코드는 독자가 "if __name__ == '__main __':'을 (를) 찾고"가져온다! "라는 독자를 갖게되며, 가져온 장식 된 꾸러미 한 개조차도 틀림없이 너무 큰 희생입니다. – Walter

+2

...이 길이가 거의 같지 않습니까?가능한 가장 공정한 계산 방법에서는 약 3 자 정도 더 짧습니다. 'from automain import * @ automain' vs'__name__ == "__main__": mymain()' – dbr

1

짧은, 당신은 라인 계산하는 경우 :

__name__ == '__main__' and main()