와카기 출품
맞춤 모듈
시스템에서 제공하는 내장 모듈을 사용하는 것 외에도 자체 프로그램용 모듈을 작성할 수도 있습니다. 파일 .py
은 모듈이므로 사용자 지정 모듈은 매우 간단하며 기본적으로 파일을 만드는 것과 같습니다 .py
. .py
단, 파일을 다른 코드에서 모듈로 사용할 경우 .py
파일 이름은 식별자의 명명 규칙을 따라야 한다는 점에 유의해야 합니다 .
모듈 검색 경로
모듈 생성은 매우 간단합니다. 설치 식별자의 명명 규칙에 따라 .py
모듈인 파일이 생성됩니다. 그러나 문제는 이 모듈을 찾기 위해 생성된 .py
파일을 어디에 넣고 코드의 명령문을 사용해야 하느냐입니다 .import
파이썬의 내장 sys
모듈 의 속성 path
은 프로그램이 실행될 때 모듈을 찾는 디렉토리를 나열합니다.이 디렉토리 중 하나에 우리가 만든 모듈을 넣기만 하면 됩니다.
import sys
print(sys.path)
[
'C:\\Users\\chris\\Desktop\\Test',
'C:\\Users\\chris\\AppData\\Local\\Programs\\Python\\Python37\\python37.zip',
'C:\\Users\\chris\\AppData\\Local\\Programs\\Python\\Python37\\DLLs',
'C:\\Users\\chris\\AppData\\Local\\Programs\\Python\\Python37\\lib',
'C:\\Users\\chris\\AppData\\Local\\Programs\\Python\\Python37',
'C:\\Users\\chris\\AppData\\Roaming\\Python\\Python37\\site-packages',
'C:\\Users\\chris\\AppData\\Local\\Programs\\Python\\Python37\\lib\\site-packages'
]
__all__
사용법
모듈에 있는 모든 내용을 가져오기를 사용 하는 경우 본질적으로 이 모듈의 속성을 from <模块名> import *
찾아 속성에 선언된 모든 내용을 가져옵니다. 이 모듈에 속성이 설정되지 않은 경우 이 모듈의 모든 콘텐츠를 이때 가져옵니다.__all__
__all__
__all__
모듈의 개인 멤버
모듈에서 밑줄로 시작하는 변수 및 함수는 _
모듈의 비공개 멤버이므로 모듈을 가져올 때 _
밑줄로 시작하는 변수는 기본적으로 가져오지 않습니다. 그러나 필수 사항은 아니며 _
코드에서 . 그러나 문제가 발생할 수 있으므로 이렇게 사용하는 것은 권장하지 않습니다.
요약하다
test1.py
__all__
: 모듈에 속성이 없습니다.
a = 'hello'
def fn():
print('我是test1模块里的fn函数')
test2.py
__all__
: 모듈에 속성이 있습니다.
x = '你好'
y = 'good'
def foo():
print('我是test2模块里的foo函数')
__all__ = ('x','foo')
test3.py
_
:로 시작하는 속성이 있습니다.
m = '早上好'
_n = '下午好'
def _bar():
print('我是test3里的bar函数')
demo.py
from test1 import *
from test2 import *
from test3 import *
print(a)
fn()
print(x)
# print(y) 会报错,test2的__all__里没有变量 y
foo()
print(m)
# print(_n) 会报错,导入test3时, _n 不会被导入
import test3
print(test3._n) # 也可以强行使用,但是强烈不建议
__name__
사용법
실제 개발에서는 개발자가 모듈을 작성한 후 모듈이 프로젝트에서 원하는 효과를 얻도록 하기 위해 개발자가 .py
직접 파일에 몇 가지 테스트 정보를 추가합니다. 예를 들면 다음과 같습니다.
test1.py
def add(a,b):
return a+b
# 这段代码应该只有直接运行这个文件进行测试时才要执行
# 如果别的代码导入本模块,这段代码不应该被执行
ret = add(12,22)
print('测试的结果是',ret)
demo.py
import test1.py # 只要导入了tets1.py,就会立刻执行 test1.py 代码,打印测试内容
이 문제를 해결하기 위해 파이썬에는 파일을 실행할 때 변수가 있습니다 __name__
. 파이썬에서는 .py
파일을 직접 실행할 때 .py
파일에 있는 값 __name__
이 이므로 파일을 직접 실행하는지 모듈로 임포트 __main__
하는지 판단할 수 있다 ..py
def add(a,b):
return a+b
if __name__ == '__main__': # 只有直接执行这个`.py`文件时, `__name__`的值才是 `__main__`
# 以下代码只有直接运行这个文件才会执行,如果是文件被别的代码导入,下面的代码不会执行
ret = add(12,22)
print('测试的结果是',ret)
지침
모듈을 사용자 정의할 때 사용자 정의 모듈 이름이 시스템 모듈 이름과 동일하지 않아야 한다는 사실에 주의해야 합니다. 그렇지 않으면 문제가 발생합니다!
고급 사례
[Python] 파이썬은 당신의 지능과 운에 도전하는 단어 추측 게임을 실현합니다!
[python] Python tkinter 라이브러리는 무게 단위 변환기를 위한 GUI 프로그램을 구현합니다.
[python] Selenium을 사용하여 (2023 Blog Star) 항목 가져오기
[python] Selenium 및 Chrome WebDriver를 사용하여 [Tencent Cloud Studio 실습 캠프]에서 기사 정보 얻기
Tencent Cloud Cloud 스튜디오를 사용하여 Baidu AI 예약을 실현하여 텍스트 인식 실현
[Fun with Python 시리즈 [Xiaobai must see] Python 다중 스레드 크롤러: 이모티콘 패키지 웹사이트 사진 다운로드
[Python으로 놀기 시리즈] [Xiaobai의 필수 볼거리] Python을 사용하여 Shuangseqiu의 역사적 데이터를 크롤링하고 시각적으로 분석
[파이썬으로 놀기 시리즈] [샤오바이 꼭 봐야지] 파이썬 크롤러 기술을 이용해 프록시 IP를 얻어 파일로 저장
[Xiaobai에서 꼭 봐야 할 것] PIL 라이브러리를 사용하여 여러 이미지를 순위 및 열로 합성하는 Python 이미지 합성 예제
[Xiaobai 필견] Python 크롤러 실전, 여신 사진을 일괄 다운로드하여 로컬에 저장
[Xiaobai 필견] Python 워드 클라우드 생성기 상세 분석 및 코드 구현
[샤오바이 필견] 파이썬, NBA 선수 데이터 예시 크롤링
[Xiaobai에서 꼭 봐야 할 것] Python을 사용하여 히말라야 오디오를 크롤링하고 저장하는 샘플 코드
[샤오바이 필견] 파이썬으로 리그 오브 레전드 스킨 사진 일괄 다운로드 기술 구현
[Xiaobai 필견] Python 크롤러 데이터 처리 및 시각화
[샤오바이 필견] 영광의 왕 영웅 스킨 사진을 쉽게 얻을 수 있는 파이썬 크롤러 프로그램
[Xiaobai에서 꼭 봐야 할 것] Python을 사용하여 개인화 목록 Word 문서 생성
[Xiaobai에서 꼭 봐야 할 것] Python 크롤러 전투: Onmyoji 웹사이트에서 사진을 가져와서 자동으로 저장
Xiaobai 필견 도서관 관리 시스템 시리즈 - 로그인 및 등록 기능을 위한 샘플 코드
Xiaobai의 실전 100건: Xiaobai 시작에 적합한 완전하고 간단한 쌍세구 복권 당첨 판정 프로그램
geopandas 및 shapely(.shp)를 사용한 공간 데이터 처리 및 시각화
셀레늄을 사용하여 Maoyan 영화 목록 데이터 크롤링
이미지 향상 알고리즘 Retinex의 원리 및 구현에 대한 자세한 설명
크롤러 시작 안내서(8): 시각적 분석을 위한 기상 데이터 크롤러 프로그램 작성
크롤러 입문 가이드(7): Selenium 및 BeautifulSoup을 사용하여 Douban Movie Top250 크롤링 예제 설명 [파충류 Xiaobai는 꼭 봐야 함]
크롤러 시작 가이드(6): 안티 크롤러 및 고급 기술: IP 프록시, 사용자 에이전트 변장, 쿠키 우회 로그인 확인 및 확인 코드 식별 도구
크롤러 입문 가이드(5): 분산 크롤러 및 동시성 제어 [크롤링 효율성 향상 및 요청 합리성 제어를 위한 구현 방법]
크롤러 시작하기(4): Selenium 및 API를 사용하여 동적 웹 페이지를 크롤링하는 가장 좋은 방법
크롤러 시작 가이드(3): Python 네트워크 요청 및 일반적인 안티 크롤러 전략
크롤러 시작하기(2): 데이터 추출 및 처리에 정규식을 사용하는 방법
파충류 시작하기(1) : 파충류의 기초와 기술을 배운다
이미지 인식에 딥러닝 모델 적용: CIFAR-10 데이터셋 실습 및 정확도 분석
Python 객체 지향 프로그래밍 기본 사항 및 샘플 코드
MySQL 데이터베이스 작업 가이드: Python을 사용하여 작업을 추가, 삭제, 수정 및 쿼리하는 방법 알아보기
Python 파일 작업 가이드: 인코딩, 읽기, 쓰기 및 예외 처리
Python 다중 스레드 및 다중 프로세스 자습서: 포괄적인 분석, 코드 사례 및 최적화 기술
Selenium 자동화 도구 세트 - 전체 안내서 및 자습서
Python 입문 자습서: for 루프, while 루프, 문자열 작업, 파일 읽기 및 쓰기, 예외 처리에 대한 기본 지식을 습득합니다.
Pandas 데이터 처리 및 분석 튜토리얼: 기초부터 실전까지
Python에서 일반적으로 사용되는 데이터 유형 및 관련 작업에 대한 자세한 설명
[2023년 최신] 분류모델 지표 개선을 위한 6대 방안 상세설명
입문 Python 프로그래밍 기본 및 고급 기술, 웹 개발, 데이터 분석, 기계 학습 및 인공 지능
4가지 회귀 방법을 사용한 그래프 예측 결과: 벡터 회귀, 임의 포레스트 회귀, 선형 회귀, K-최근접 이웃 회귀