2012-08-23 9 views
2
나는 예외 클래스를 정의

파이썬 : '모듈'개체가 호출되지 않습니다

#####UNIQUE CONSTRAINT EXCEPTION#########################################################3 
class UniqueConstraintException (Exception): 
    def __init__(self, value): 
     self.value = value 

    def __str__(self): 
     return repr('Failed unique property. Property name: ' + self.value) 

파일 이름은 다음과 같습니다 "UniqueConstraintException.py"패키지 이름 : "예외"

내가 가져 해요 이 방법으로 그것을 사용 :

from exception import UniqueConstraintException 

raise UniqueConstraintException(prop_key) 

그리고이 오류를 얻을 :

TypeError: 'module' object is not callable 

내가 뭘 잘못 했니?

+3

[Python은 Java가 아닙니다] (http://dirtsimple.org/2004/12/python-is-not-java.html), 그게 잘못입니다. 파일 당 하나의 클래스를 갖기 위해 4 줄 모듈을 정의하는 일을하지 않아도됩니다. 예외를 함께 처리하십시오. 그리고 그 문제에 대해, 새로운 예외 유형을 추가하기 전에 오래 동안 그리고 열심히 생각하십시오. 내장 된 것들에는 아무런 문제가 없습니다. – delnan

+1

PEP8을 읽으십시오 : http://www.python.org/dev/peps/pep-0008/ – bukzor

+1

그것에 대해 phallus가되어 주셔서 감사합니다, delnan. 거기에 많은 수동적 침략이 있습니다. 우리 중 일부는 모든 것을 알지 못합니다. 우리가 너만큼 지식이있을 수만 있다면. 추신 : 수동적 침략에 대한 또 다른 예를 들어이 코멘트를 다시 읽어보십시오. –

답변

9

이 때문에 모듈 이름을 소문자로 유지하려고합니다. :-)

from exception.UniqueConstraintException import UniqueConstraintException 

모듈을 가져 왔으며 모듈 내부에 정의 된 클래스가 없습니다.

+0

잘 작동했습니다. 감사!!! –

+0

하지만 모듈을 만드는 올바른 방법은 무엇입니까? –

+1

이 경우? 모든 예외를 하나의 exceptions.py 모듈에 넣기 만하면됩니다. 일반적인 경우, 모듈의 이름을 'uniqueconstraint.py'라고지었습니다. –

관련 문제