2011-12-05 2 views
1

패키지에서 하나의 모듈을 제외한 모든 것을 가져올 수 있습니까?Python : Import Exception

내 수업에서 사용하는 특정 라이브러리의 모듈이 많이 필요하지만 필요한 모듈 중 하나에 동일한 모듈 이름이 사용 된 것처럼 보입니다.

집합 연산과 교차를 사용해야하지만 클래스에서 라이브러리를 가져올 때 오류가 발생합니다.

나는 그것을 많이 사용하기 때문에 별도로 가져 오거나 모든 메소드 앞에 이름을 지정하고 싶지 않았습니다.

파이썬이 set과 같은 특정 메소드를 제외한 모든 것을 가져올 수있는 방법이 있습니까? set 부분을 나중에 다시 가져 오시겠습니까?

+0

'from ~ import *'은 유효한 구문이 아닙니다. 여러분이 * 사용하는 모듈과 그 모듈을 가져 오기 위해 사용하려고하는 * 정확한 * 문장을 언급한다면 도움이 될 것입니다. – kindall

+0

약간 혼란 스럽습니다.'set'을 정의한 모듈이 있습니까? 예제 코드를 보여줄 수 있습니까? – birryree

+0

나는'''set'' 함수를 선언 할 수 있다고 생각하지 않습니다 ... 그렇습니까? 수입 명세서를 공유 할 수 있습니까? – FakeRainBrigand

답변

5

아니요, from ... import * except blah, bleh, bluh에 대한 전문 용어가 없습니다. 당신은 그것을 지원하기 위해 자신의 가져 오기 기능을 작성하거나 같은 것을 할 수 있습니다 : (가) 내장 set 그래서 당신은 다시 사용할 수 그림자 중지됩니다

from xyz import * 
del set 

합니다.

from xyz import set as xyzset 

참고 : from ... import *은 일반적으로 좋은 방법 하지 않고, 당신은 모듈은 당신이 그것을 이런 식으로 지원을 사용하고 있는지 확인해야한다 - 그렇지 않은 경우는 xyz.set 기능을 필요 그런 경우 당신은 할 수 explicity는 이런 식으로 사용되도록 고안되었다고 말하면, 나중에는 이상한 문제를 디버깅하지 않는 한 그렇게해서는 안됩니다.

+0

우 ..이게 효과가 있었어! 고마워요 !! del : D를 사용하는 것에 대해 생각하지 않았습니다. from ... import * 부분을 염두에 두었습니다. 고맙습니다! – Dennis

0

은 당신이 될 것입니다 원하는 가정 :

from thing import a, b, c, d, e, f 

thing에서 a, b, c, d, e, f를 가져올 것이다.

AFAIK,

import thing 
thing.a 

가 처음부터 존재 이유는 from thing import all but a, b, c
그게 할 방법이 없습니다.

0

실제로 무슨 일이 일어나고 있는지 잘 모르겠습니다. 실제 모듈 이름을 쓰면 도움이 될 것입니다. 그러나 일반적으로 from ... import *을 수행하는 것은 나쁜 습관으로 간주됩니다. 특정 상황이 어디에서 발생하는지 명확하지 않기 때문입니다. 대신 from ... import thingA, thingB, thingC을 입력하십시오.

또한 import ... as shortname을 수행 한 다음 방법을 shortname.whatever (여기서 shortname은 분명히 매우 짧은 값일 수 있음)으로 참조 할 수 있습니다.

관련 문제