2011-10-13 3 views
6

전체 모듈 코드에 다른 들여 쓰기 수준을 추가 할 필요없이 아래 모듈 코드를 작성하는 방법이 있는지 알고 싶습니다.반환과 같은 것으로 파이썬 모듈 가져 오기를 끝낼 수 있습니까?

# module code 
if not condition: 
    # rest of the module code (big) 

나는 이런 식으로 뭔가를 찾고 있어요 :

# module code 
if condition: 
    # here I need something like a `return` 
# rest of the module code (big) 

주, 나는 예외를 던질 싶지 않아, 수입은 일반적으로 통과해야한다.

+9

나는 그것에 대한 해결책을 모르지만 내부 코드에 모든 코드를 넣고 조건이 충족되지 않으면 가져올 수 있다고 생각합니다. – UncleZeiv

+0

@UncleZeiv : 좋은 생각인데 답변으로 게시해야합니다! – SingleNegationElimination

+0

들여 쓰기의 싫은 점은 무엇입니까? –

답변

5

나는 그것에 대한 해결책을 모르지만 내부 코드에 모든 코드를 넣고 조건이 충족되지 않으면 가져올 수 있다고 생각합니다.

+0

고마워, 아무도 더 좋은 생각이 몇 일 안에 나오지 않으면 올바른 대답으로 남을 것이다. – sorin

1

나는 이것을 할 방법이 없다. 내가 상상할 수있는 유일한 것은 return 일 것이지만 그것은 함수 안에 있어야합니다.

0

상위 목표가 무엇인지 모른 채 말하기가 너무 어렵습니다. (예를 들어, 조건은 무엇입니까? 왜 중요합니까? XY 문제가 발생하지 않았 음을 확신합니까? 전체 목표가 무엇인지 말씀해 주시겠습니까?) 모르는 사이에 말하기 란 정말 어렵습니다. 모듈이 어떻게 호출 될지. (명령 행에서 스크립트로 다른 모듈로 가져옴으로써) 그리고 (왜) 당신이 들여 쓰기를 피하려고하는지 (2 차 세계 대전이 끝났으며 우리는 배급 공간을 필요로하지 않는다) 더 이상, 또는 더 친절하게, 파이썬은 들여 쓰기를 SYNTACTIC FEATURE로 사용하는 언어이므로 "이 구문 적 특징을 사용할 수 없다"는 말은 많은 사람들을 이상한 구속 조건으로 삼았습니다. 테스트 : 당신은 이론적으로 그 제약 조건을 해결할 수 있습니다, 가끔은,하지만 왜 당신은 당신의 손이 뒤에 묶여 권투 반지에 들어가는거야?), 그리고 (b) 왜 예외를 던질 수없는 (아니오 , 정말 : 당신은 절대적으로 모든 예외를 파기 할 수는 없다는 것을 완전히 확신합니까?).

그렇듯이 실제로 한 것은 "조건 X, 조건 A, B 및 C를 어떻게 수행합니까?"라고 묻는 것입니다. 왜 X를하고 싶은지 또는 A, B, C 조건이 존재하는 이유를 나타내지 않고, 또는 당신이 100 % 그들이 존재하고 일할 수 없는지 여부와는 상관없이 질문을 던집니다.

실제로 말하는 것은 "기능을 작성하는 동안 {TAB}을 40 번 누르는 것을 원하지 않습니다."라고 말하면 실제 문제는 더 나은 텍스트 편집기가 필요하다는 것입니다. 당신이 정말로 말하고있는 것이 "나는 들여 쓰기가 예술적으로 불쾌하다는 것을 알게된다면", 당신은 (a) 논쟁의 반대편이 무엇인지 생각해야합니다. 즉 사람들이 파이썬이 들여 쓰기를 유용한 문법으로 사용하는 이유는 무엇입니까? (b) 이와 관련하여 자신의 미적 환경 설정이 (a)에서 제기 한 이유보다 더 중요한지 여부; (c) 이러한 점을 고려할 때 Python은 개인적으로 큰 목표를 달성하기 위해 개인적으로 사용하는 올바른 도구인지 여부입니다. (들여 쓰기가 통사론적인 특징이 아니라는 것은 괜찮습니다. 그러나 이것은 파이썬에 매우 기본적인 것입니다. 철저히 반대하기 때문에 어느 정도까지는 파이썬이 프로그래밍을 수행하는 데 이상적인 언어가 아닐 수 있다는 강력한 증거입니다 당신이 정말로 말하고있는 것은 두 개의 서로 다른 환경 하에서 두 개의 모듈로 실행되어야하는 코드를 인수 분해함으로써 이익을 얻는 것이라면, 리팩터링에 도움이 될 것입니다. 만약 당신이 말하는 것은 스파게티 코드가 완전히 리팩터링이 불가능하다는 것입니다. 모듈 가져 오기를 중단하기 전에 실제로 해결해야 할 첫 번째 문제입니다.

관련 문제