Does python have an elegant way to handle this?
언 바운드 이름을 인쇄에서 예외를 방지하기 위해 try 블록의 외부에서 변수를 초기화 할 수 있습니다, 가장 우아한 방법을 인쇄 할 수 없습니다; 두 번째 가장 우아한 방법은 이름이 바운드되도록하는 것입니다. 함수의 시작 부분에 바인딩 (이 목적으로 자리 표시 자 None
이 널리 사용됨).
try: print 'b is', b
except NameError: print 'b is not bound'
In a complicated function I'd prefer to avoid testing the existence of every local variable before I, for example, printed debug information about them
If not, what about an inelegant way?
은 단순하게 기능을 유지 (즉,
복잡하지은) 매우도 좋습니다. 호어는 (그의 튜링 수용 강연에서 "황제의 헌옷",
this PDF에서 재판 예) 삼십년 전에 쓴 것처럼 : 단순
는 달성 및 유지
There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.
을 참으로 어려운 : 당신이 특정을 구현해야 주어진 총 기능 X의 경우 복잡한 잡동사니와 잡다한 조각들로 구성된 복잡한 클래스와 기능, "똑똑한"해킹, 복사하여 붙여 넣기 및 편집하는 a-bit 에피소드를 통해 복잡한 작업을하는 것이 가장 자연스러운 유혹입니다. "드라이브 바이 코딩"등.
그러나 기능을 "너무 간단하게 유지하려고 노력하는 것은 가치있는 노력입니다. 분명히 결함이 없다. " 함수를 완전히 단위 테스트하기가 어렵다면 너무 복잡합니다. 즉, 리팩터링하여 리팩토링하는 작업을 수행 할지라도 리팩토링합니다. (실제로 단위 테스트에 중점을 두는 것이 코드 품질에 도움이되는 방법 중 하나입니다. 모든 코드를 완벽하게 테스트 가능한 상태로 유지하기 위해 끊임없이 노력해야하므로 으로 간단하게 만들 수 있습니다.).
무엇을 처리 할 수를 사용하여 로컬 범위에 정의되어 있는지 확인 수 있을까? 'except' 절에 인쇄되는 내용은 무엇입니까? – SilentGhost