거기에 와일드 카드와 와일드 카드가 아닌 방식처럼 모두 다음 똑같은 파일프로그램에서 두 가지 다른 방법으로 동일한 모듈을 가져 오기위한 포인트가 있습니까? 로 가져올 수있는 포인트가
import spam as sp
from spam import *
? 당신이 SP로 스팸 메일을 가져올 때
거기에 와일드 카드와 와일드 카드가 아닌 방식처럼 모두 다음 똑같은 파일프로그램에서 두 가지 다른 방법으로 동일한 모듈을 가져 오기위한 포인트가 있습니까? 로 가져올 수있는 포인트가
import spam as sp
from spam import *
? 당신이 SP로 스팸 메일을 가져올 때
, 당신은 다른 가져 오기 명령을 사용하여 충돌이 없는지 확인하십시오
import spam as sp
import myfunctions as my
sp.foo()
my.foo()
이 예상대로 작동은하지만이되지 않습니다 :
from spam import *
from myfunctions import *
foo()
foo() #Which foo() is meant? UNCLEAR!!!
import spam as sp
을 사용하여이 문제를 피할 때 어쨌든 from spam import *
을 사용 하시겠습니까? 나는 이것에 어떤 점도 있다고 생각하지 않는다.
아니요 sp
이라는 이름으로 spam
을 가져온 다음 from spam import *
sp
을 사용하여 가져온 모든 항목은 절대로 사용하지 않으므로 불필요합니다.
예를 들어 somefunction()
이라는 기능이있는 경우 import spam as sp
우리가 sp.somefunction()
from spam import *
때문에이 직접 somefunction()
왜 대신 sp.somefunction()
을 사용하여 호출 할 수 있습니다
와 somefunction()
부를 수있는 것을 의미한다.
from spam import *
으로 간주됩니다. 각 기능을 개별적으로 가져 오기보다는 개별적으로 가져와야합니다. (from spam import somefunction
, from spam import someotherfunction
등). 또는 sp.somefunction()
, sp.someotherfunction()
을 사용해도됩니다. 내가 생각할 수있는
유일한 이유는 당신이 from spam import *
import spam as sp
-변화하려는 것입니다. 이 줄을 바꾸면 즉시 코드가 깨져서 모든 줄 앞에 sp.
이라는 접두사를 붙여야합니다. 이 변경을 더 느린 속도로 수행하려면이 작업을 수행 할 수 있습니다. 그런 다음 필요에 따라 sp.
을 천천히 추가하고 결국 from spam import *
을 제거 할 수 있습니다.
import spam as sp
은 모듈을로드하고 변수 sp
에 넣습니다. from spam import *
은 모듈과 모든 속성 (클래스, 함수 등)을로드하고 와일드 카드로 가져온 코드를 spam
에로드 할 수 있습니다.
import *
은 많은 클래스가 있어야 액세스 할 수있는 기능입니다. 그러나 가져온 속성을 네임 스페이스에 캡슐화하지 않고 (import spam as sp
을 사용하여 수행 한 작업) 원치 않는 동작으로 이어질 수 있으므로 (PEP는 2 가지 기능이 주 프로그램에서 동일한 이름을 갖고 스팸으로 처리 될 수 있기 때문에))
가장 좋은 방법, 그리고 당신이 사용하는 것입니다 무엇을 명확하게 진술하는 것은 from spam import func1, func2
또는 당신이 그것을 많이 import spam as sp
을 사용하고 sp.func1()
사용할 경우 그것은 당신이 무엇을 원하는 따라 달라집니다. 두 번째 임포트에서는 이것을'sp. '로 사용할 수 없습니다.'import *'가 때때로 불쾌하지 않습니다. 이 [답변] (https://stackoverflow.com/questions/2360724/what-exactly-does-import-import)을 참조하십시오. – scharette
이것은 프로그램을 읽는 숙련 된 코더들이 저자가 임의의 장소에서 물건을 붙여 넣어 스크립트를 작성했으며 자신이하는 일을 실제로 알지 못한다는 것을 알 수 있습니다. :) –
https://stackoverflow.com/questions/2386714/why-is-import-bad를 참조하십시오. –