이 기사에서는 모듈이 무엇인지에 대한 내용을 제공합니다. Python의 모듈 도입에는 특정 참고 가치가 있습니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.
파이썬에서는 .py 파일을 모듈이라고 합니다.
그럼 모듈을 사용하면 어떤 이점이 있나요?
(1) 코드의 유지 관리성을 향상시킵니다.
(2) 코드를 처음부터 시작할 필요는 없으며, 모듈을 작성하면 다른 곳에도 적용할 수 있습니다.
(3) 동일한 함수 이름과 변수를 다른 모듈에 저장할 수 있지만, 내장된 함수 이름과 충돌하지 않도록 주의하세요.모듈 이름 충돌을 피하기 위해 Python에서는 모듈 충돌을 방지하는 방법을 도입했습니다. 패키지(파이썬 패키지)에 대한 디렉터리입니다.
abc.py 파일은 abc라는 모듈이고, xyz.py 파일은 xyz라는 모듈입니다. 모듈 이름 abc 및 xyz가 다른 모듈과 충돌하는 경우 모듈 충돌을 피하기 위해 다른 패키지를 통해 모듈을 구성할 수 있습니다.
은 다음과 같습니다.
↓ mycompany # 按目录存放 _init_.py # 模块名:mycompany abc.py # 模块名:mycompany.abc xyz.py # 模块名:mycompany.xyz
패키지가 도입된 후 최상위 패키지 이름이 다른 패키지 이름과 충돌하지 않는 한 모든 모듈은 다른 모듈과 충돌하지 않습니다.
각 패키지 디렉터리에는 _init_.py 파일이 있습니다. 이 파일은 반드시 존재해야 합니다. 그렇지 않으면 Python은 이 디렉터리를 패키지가 아닌 일반 디렉터리로 처리합니다.
_init_.py는 빈 파일이거나 Python 코드를 포함할 수 있습니다. _init_.py 자체가 모듈이기 때문입니다.
Python에는 설치만 하면 이러한 모듈을 사용할 수 있는 매우 유용한 내장 모듈이 많이 있습니다. 수입되어 즉시 사용 가능합니다.
예를 들어 다음과 같은 작은 프로그램은 자체 빌드된 sys 모듈을 사용하여 hello 모듈 hello.py를 작성합니다.
# !/usr/bin/env python # -1- # -*-coding:utf-8 -*- # -2- _author_ = 'xionglp' # 使用_author_变量把作者写进去 import sys def test(): args = sys.argv if len(args) == 1: print ('hello,world!') elif len(args) ==2: print('hello,%s !'% args[1]) else: print('too many arguments!') if __name__ == '__main__': test()
지침:
참고# -1-: .py 파일을 unix/linux/mac에서 직접 실행하도록 허용
Note# - 2 -: .py 파일은 표준 UTF-8 인코딩을 사용합니다.
import sys: sys 모듈을 가져옵니다. 그런 다음 sys 변수를 사용하여 sys 모듈의 모든 기능에 액세스할 수 있습니다.
sys 모듈에는 목록을 사용하여 명령줄의 모든 매개변수를 저장하는 argv 변수가 있습니다. 첫 번째 인수는 항상 .py 파일의 이름이므로 argv에는 요소가 하나 이상 있습니다.
hello.py 파일이 명령줄에서 실행되면 Python 인터프리터는 특수 변수 __name__을 __main__으로 설정합니다. 모듈을 다른 곳에서 가져오면 if 판단이 실패합니다. 즉, if 판단은 이 모듈이 단독으로 실행될 때만 적용됩니다. 따라서 이 if 테스트를 통해 모듈은 명령줄을 통해 실행될 때 몇 가지 추가 코드를 실행할 수 있으며, 가장 일반적으로 실행되는 테스트입니다.
대화형 환경(cmd)에서 모듈 가져오기:
>>> import hello >>> hello.test() hello, world!
일반적으로 타사 라이브러리는 Python의 공식 pypi.python.org 웹사이트에 등록됩니다. 따라서 타사 라이브러리를 설치하려면 먼저 공식 홈페이지나 pypi에서 검색할 수 있는 라이브러리 이름을 알아야 합니다. 예를 들어 Pillow의 이름은 Pillow이므로 Pillow를 설치하는 명령은 다음과 같습니다. pip install Pillow
#🎜 🎜#은 다음과 같습니다.
설치가 성공적으로 완료되면 Pillow를 사용할 수 있습니다. 일반적으로 사용되는 기타 타사 라이브러리로는 MySQL 드라이버, 과학 컴퓨팅용 NumPy 라이브러리 등이 있습니다.
pip 업그레이드:pip를 사용하여 설치할 때 때로는 pip 버전이 너무 낮아서 필요하다는 메시지가 표시됩니다. 업그레이드됩니다. 프롬프트는 실행할 명령문을 제공합니다. 프롬프트를 따르십시오. 실행 명령: python –m pip install –upgrade pip
4. 모듈 검색 경로
>>>import sys >>>sys.path
>>> import sys >>> sys.path.append('/Users/xionglp/my_py_scripts')
法二:设置环境变量PYTHONPATH,该环境变量的内容会被自动添加到模块搜索路径中。设置方式与设置Path环境变量类似。注意只需要添加你自己的搜索路径,Python自己本身的搜索路径不受影响。
【补充点能量】if __name__ =="__main__":
__name__:为系统变量,有两个取值。当模块是被调用执行时,取值为模块的名字;当模块是直接执行时,则该变量取值为__name__。
if __name__ == "__main__"实现的功能:可以让模块既可以导入到别的模块中用,也可以自己执行。
英文解释说:make a script both importable and executeable例如:新建模块atest.py
# !/usr/bin/env python3 # -*- coding:utf-8 -*- 'a test module' def addFunc(a, b): return a + b print('a_test_module\'s result is ', addFunc(1, 1))
新建模块anothertest.py
# !/usr/bin/env python3 # -*- coding :utf-8 -*- 'another test module' import atest print('调用another test module模块执行的结果时:',atest.addFunc(12,23))
运行:
D:\Python_project>python atest.py a_test_module's result is 2 D:\Python_project>python anothertest.py a_test_module's result is 2 调用another test module模块执行的结果时: 35
说明:当运行anothertest.py的时候,先运行了atest.py,再运行anothertest.py。
若不希望出现atest的内容,python提供了一个系统变量:__name__。可以把被调用的测试代码写在if语句里,当调用该module时,此时的__name__取值为该模块的名字,所以if判断为假,不执行后续代码如下:
if __name__ == '__main__':` print ('atest的计算结果:',addFunc(1,1))
则运行结果为:
D:\Python_project>python anothertest.py 调用another test module模块执行的结果时: 35
此时我们就得到了预期结果,不输出多余的结果。
위 내용은 모듈이란 무엇입니까? Python 모듈 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!