programing

Python 파일을 가져올 때 대시를 사용해도 괜찮습니까?

skycolor 2023. 7. 11. 21:56
반응형

Python 파일을 가져올 때 대시를 사용해도 괜찮습니까?

기본적으로 다음과 같은 파이썬 파일이 있을 때:

python-code.py

및 사용:

import (python-code)

통역사가 나에게 구문 오류를 줍니다.

어떻게 고칠 수 있을까요?python 파일 이름에서 대시는 불법입니까?

Python Code용 스타일 가이드인 PEP 8을 확인해야 합니다.

패키지 및 모듈 이름 모듈은 모두 소문자로 짧은 이름을 사용해야 합니다.가독성이 향상된 경우 모듈 이름에 밑줄을 사용할 수 있습니다.또한 Python 패키지는 모두 소문자로 된 짧은 이름을 사용해야 하지만 밑줄은 사용하지 않습니다.

모듈 이름은 파일 이름에 매핑되고 일부 파일 시스템은 대소문자를 구분하지 않고 긴 이름을 잘라내기 때문에 모듈 이름을 상당히 짧게 선택하는 것이 중요합니다. 유닉스에서는 문제가 되지 않지만 코드가 이전 Mac 또는 Windows 버전 또는 DOS로 전송될 때 문제가 될 수 있습니다.

즉, 파일 이름을 변경합니다 :)

코드에서 한 가지 더 주의할 점은 가져오기 기능이 없다는 것입니다.그렇게import(python-code)그래야 한다import python-code일부에서 이미 언급했듯이, 이는 당신이 의도한 것이 아니라 "파이썬에서 코드를 뺀 가져오기"로 해석됩니다.이름에 대시가 있는 파일을 가져와야 하는 경우 다음을 수행할 수 있습니다.

python_code = __import__('python-code')

그러나 위에서 언급한 바와 같이 이것은 실제로 권장되지 않습니다.사용자가 제어할 수 있는 파일 이름을 변경해야 합니다.

TLDR

대시는 불법이 아니지만 다음 세 가지 이유로 사용하면 안 됩니다.

  1. 대시가 있는 파일을 가져오려면 특수 구문이 필요합니다.
  2. 대시가 있는 모듈 이름은 필요 없습니다.
  3. Python Style Guide의 권장 사항에 위배됩니다.

대시를 사용하여 파일 이름을 가져와야 하는 경우 특수 구문은 다음과 같습니다.

module_name = __import__('module-name')

특별한 구문이 필요한 이유가 궁금하십니까?

특별한 구문의 이유는 당신이 글을 쓸 때import somename식별자가 있는 모듈 개체를 만드는 중입니다.somename나중에 예를 들어 사용할 수 있습니다.somename.funcname) 물론입니다.module-name유효한 식별자가 아니므로 유효한 식별자를 제공하는 특수 구문입니다.

module-name이 유효한 식별자가 아닌 이유를 모르십니까?

걱정하지 마세요. 저도 안 했어요.여기 도움이 되는 팁이 있습니다: 이 파이썬 라인을 보십시오.x=var1-var2할당의 오른쪽에 빼기 또는 대시가 있는 변수 이름이 표시됩니까?

PS

다른 모든 답변의 가장 관련성이 높은 정보를 한 곳에 포함하는 것 외에는 답변에 독창적인 내용이 없습니다.

는 문는입니다.python-code식별자가 아닙니다.파서는 이것을 다음과 같이 봅니다.python마이너스의code물론 이것은 당신이 요구하는 것을 하지 않을 것입니다.유효한 파이썬 식별자이기도 한 파일 이름을 사용해야 합니다.교체해 보십시오.-밑줄 친 채로

Python 3에서 import_module을 사용합니다.

from importlib import import_module
python_code = import_module('python-code')

더 일반적으로 말하면,

import_module('package.subpackage.module')

당신은 아마도 몇몇을 통해 그것을 수입할 수 있을 것입니다.__import__해킹, 하지만 만약 당신이 이미 방법을 모른다면, 당신은 하지 말아야 합니다.이름(". 즉, 모듈이 Python 모듈인 경우 Python 모듈 이름("identifier입니다.foo_bar내에서 할 수 .print foo_bar 할 수 입니다. ( ).print foo-bar-> 구문 오류).

이지만, 에 파일 이름 지정이 가능하다면,python-code통제 에 있지 , 우의통있않다습해니, 는킹하사용을 사용하는 .__import__다른 작성자의 코드를 복사하거나 이름을 바꾸거나 다른 방법으로 장난치는 것보다 낫습니다. 저는 해 보았지만, 파일 이름을 이름을 ..py연장하다.문서를 보고 다음에 대한 설명을 얻는 방법을 찾은 후.py저는 결국 이렇게 되었습니다.

import imp

try:
    python_code_file = open("python-code")
    python_code = imp.load_module('python_code', python_code_file, './python-code', ('.py', 'U', 1))
finally:
    python_code_file.close()

파일을 .python-codec일주에

언급URL : https://stackoverflow.com/questions/761519/is-it-ok-to-use-dashes-in-python-files-when-trying-to-import-them

반응형