내가이 import 문"from MODULE import _"가 파이썬에서 무엇을합니까? 얻는 일에
from GTG import _
우연히 코드베이스를 GNOME과 무슨 뜻인지 몰라, 설명서에이를 본 적이과 빠른 그래서/구글 검색은 아무것도를 설정하지 않았다.
내가이 import 문"from MODULE import _"가 파이썬에서 무엇을합니까? 얻는 일에
from GTG import _
우연히 코드베이스를 GNOME과 무슨 뜻인지 몰라, 설명서에이를 본 적이과 빠른 그래서/구글 검색은 아무것도를 설정하지 않았다.
from GTG import _
_
함수를 모듈에서 "현재"네임 스페이스로 가져옵니다.
일반적으로 _
함수는 주어진 메시지의 지역화 된 버전을 나타내는 gettext.gettext()
함수의 별칭입니다.
import gettext
gettext.bindtextdomain('myapplication', '/path/to/my/language/directory')
gettext.textdomain('myapplication')
_ = gettext.gettext
# ...
print _('This is a translatable string.')
이 함수/클래스/모듈 _
을 현재 네임 스페이스로 가져옵니다. 따라서 GTG._
을 입력하는 대신 _
을 입력하면됩니다.
http://docs.python.org/tutorial/modules.html#more-on-modules
당신이주의 이것을 사용한다는 것을 주목해야한다 : 여기
몇 가지 문서입니다. 이 작업을 너무 많이하면 현재 네임 스페이스가 오염되어 코드를 읽기가 어려워지고 런타임 오류가 발생할 수 있습니다. 또한 결코 절대로 이렇게하지 마십시오 :from MODULE import *
, 이는 현재 네임 스페이스를 매우 오염시킵니다.
이 기법은 나열된 애셋 만 가져 오기 때문에 모듈에서 하나 또는 두 개의 함수/클래스/모듈 만 사용하려는 경우에 가장 유용합니다. 나는 itertools
모듈에서 imap
기능을 사용하려면, 그리고 내가 다른 itertools
기능이 필요하지 않습니다 알고있는 경우
예를 들어, 나는
from itertools import imap
을 쓸 수 있고 그것은 단지 imap
를 가져올 것 기능. 앞서 말했듯이
,이는 그것이 정확히 imap
모듈에서 어느 만들면서 어떤 사람들은
import itertools
# ... more code ...
new_list = itertools.imap(my_func, my_list)
이
from itertools import imap
# ... more code ...
new_list = imap(my_func, my_list)
보다 더 읽을 수 있다고 생각 수 있으므로주의해서 사용해야합니다 기능은에서왔다.
, 그냥 다른 글자 모양입니다 : 문서는 보통 멀리, 멀리 모듈에 다른 곳에서 무슨 일이 일어나고 있는지의 사진을 제공합니다 문자를 사용하여 변수의 이름을 지정할 수 있습니다. –
@Paul, 감사합니다. 나는 일반적인 'GTG import bla'문법을 알고 있었지만 _ 나를 혼란스럽게 만들었다. 이제는 이전에 GTG 패키지 폴더에 _.py 파일이 있어야한다고 생각했지만 잘못된 것 같습니다. GTG/폴더에있는 '__init__.py'파일의 줄이 '_ = translation입니다.gettext ' 그래서 나는 그게 전부라고 생각합니다. 누군가가 그런 기이 한 방식으로 함수의 이름을 지정하고 싶습니다. – Paul
@DavidZ 완전히 사실이 아닙니다. from fibo import *는 밑줄 (_)로 시작하는 이름을 제외한 모든 이름을 가져옵니다. –
안녕하세요 고마워, 이건 정말 도움이됩니다. 나는 BLA import bla 구문으로부터 일반적인 것을 알고 있었기 때문에이 컨벤션에 대해 알아내는 것이 실제로 내가 찾던 것이었다! 그런 속기를 사용하면 훨씬 더 의미가 있습니다. 고맙습니다. – Paul
@bp 공정 사용. 게다가 문서를 읽는 것은 재산권이 있다고 주장하는 것보다 파이썬 문화에서 더 가치가 있다고 생각합니다. – twneale