[TOC]
네 가지 형태의 모듈
전화로 파이썬 ---> 청지기 응용 프로그램으로 핍 -> 모듈은 응용 소프트웨어입니다
1 시스템은 응용 프로그램 소프트웨어와 함께 제공 -> 더 설치하지
2. 필요성은 응용 프로그램 소프트웨어를 다운로드
3. 사용자 지정 응용 프로그램
1. 내장 모듈
파이썬 인터프리터 활성화 모듈은 시간 / 랜덤 / OS / SYS, 온다 ...
타사 모듈을 설치 2.pip
cmd를 입력으로 pip install jieba
코드가 설치
pycharm에 설치
3. 사용자 정의 모듈
사용자 정의 코드
4. 패키지 (모듈)
미래 자세한 이야기
수입 和에서 ... 수입
import ...
# import time #定义同名变量存储模块名称空间地址
# python3解释器运行并且有导入语句才会发生,即使导入之后不使用模块中的任何信息
# 1.开辟内存空间,将内存空间命名为time
# 2.把time.py中的所有代码读入名称空间,然后运行
# 3.通过time.方法名使用time模块中的方法 #此时能找到time这个整体的地址,但找不到sleep的具体地址
# time.time()
# print(time) #不报错,当前执行文件已经获取了内存中time模块这个整体的地址
# sleep() #报错,当前执行文件没有获取内存中sleep()方法的具体地址,也就无法调用
#from 模块名 import 方法名
# from 模块名 import 方法名
# from time import sleep #定义同名变量存储导入的方法名地址及模块中的变量名地址
# 1.开辟内存空间,将内存空间命名为time
# 2.把time.py中的所有代码读入名称空间,然后运行
# 3.把sleep方法读入当前文件直接使用方法名,因此可以直接使用方法名
# sleep(1)
# print(sleep(1)) #不报错,当前执行文件已经获取了内存中具体的sleep()方法的地址
# time.sleep() #报错,当前执行文件没有获取内存中time这个模块的整体地址,也就无法通过time的这个整体的地址找到具体的某个方法的地址去调用
여러 방법을 사용하여
# 使用多个方法
# from time import sleep, time # 特定导入一些功能
#
# print(time()) # 相当于time.time(),返回当前时间
# # 如果想导入非常多方法
# from time import * #导入了所有功能,相当于复刻了整个名称空间中的所有内容到当前执行文件开辟的内存空间中
# localtime()
# gmtime() #都能使用
장점과 단점
#import和from...import...的优缺点
#import
#优点:永不冲突
#缺点:每次导入多输入字符
#from...import...
#优点:少数人字符
#缺点:有可能冲突,
# print(sleep)
# sleep = 6
# print(sleep)
# def sleep():
# print('蔡启龙')
# print(sleep)
사용자 정의 모듈
#用途:分文件存储代码-->函数与函数之间分开-->让代码更加清晰-->不同的模块敢不同的事
# import test_自定义模块
# print(test_自定义模块.abc)
# test_自定义模块.fm()
from test_自定义模块 import *
print(abc)
fm()
'''但是使用 import * 导入可能出现当前执行文件与模块文件全局变量重名的情况
解决方法:
在模块文件中的第一行使用 __all__ = ['abc','fm']
声明只允许被导入列表内的变量-->为什么是第一行(声明只对声明以下代码有效)以及为什么用字符串(变量在声明之后定义的)
只对 from ... import * 有限制作用,对单个导入以及对整体模块名导入无效
'''
print(i) #变量i未导入,打印时报错未定义
순환 가져 오기
먼저 루트 경로로 현재 폴더를 연 다음,
가져 오기 이유주기
대한 #from ... import ...
의 목적
'''
1.导入模块则将该模块代码放入新的内存空间
2.在被导入模块内的第一行有语句继续导入模块,并且继续导入的模块文件为未执行的**当前执行文件**代码,则也会开辟新的内存空间
3.导入模块开辟新内存空间只会开辟一次
4.如果导入模块时开辟的内存空间已经存在,则会强制找 import 后面的变量,找不到就会报错,找到就正常运行其他代码
'''
#m1
from m2 import y
x=10
print('from m1')
#m2
from m1 import x
y = 20
print('from m2')
run m1
#当前执行文件为m1
#报错找不到找y
솔루션
첫 번째
# 변수 정의 모듈을 가져 오기 전에, 전역 변수 도메인이 혼란을 일으킬 수 있습니다 시도하지 말라
두 번째
단지 정의 된 함수를 사용하여 모듈로 함수를 가져 문 코드 구문의 위상 특성은 수행되지 검출
보충
#m1
x=10
from m2 import y
print('from m1')
#m2
y = 20
from m1 import x
print('from m2')
#run m1
'''
打印结果:
from m1
from m2
from m1
'''
모듈 검색 경로
도입
검색 경로 네임 스페이스
지역 -> 글로벌 -> 내장
네 가지 형태의 모듈
1. 모듈 내장 : 파이썬 인터프리터 활성화 모듈은 시간 / 랜덤 / OS / SYS 온다
타사 모듈을 설치 2.pip #pip install jieba
또는 pycharm 설치
3. 사용자 정의 모듈
4. 패키지 (또한 본질적으로 모듈) -> 말하기 세부 다음
검색 순서
1. 메모리
2. 내장
3. 사용자 정의
#测试内存和自定义的搜索顺序
# import time
# import test_自定义模块
# print(test_自定义模块.abc)
# time.sleep(10) #顺带删掉test_自定义模块
# print(test_自定义模块.abc)
#测试出先内存找再自定义找
# #测试自定义和内置的搜索顺序
# import time
# print(time.abc)
# #报错,测试出先内置找再在定义找
#测试内存和内置的搜索顺序
import time
import jieba
print(jieba)
s = 'acf'
time.sleep(15)
print(jieba._lcut_all(s)) #不报错,证明先从内存中找测试出先从内存中找,再从内置中找
#因此自定义模块不能以内置的模块关键字名命名
두 용도 파이썬 파일
파일은 하나 현재 실행 파일이 될 수 있습니다 또한 모듈 파일이 될 수 있습니다
1.으로 현재 실행 파일
2. 모듈 파일로
from test_自定义模块 import fm
#导入指定模块中的函数不想使用,但模块文件代码对该函数进行了测试调用,因而在导入语句执行阶段就会使该函数运行
#解决方法
#在文件中加入 if __name__ == '__main__': 判断文件是否为当前执行文件,如果是,if条件成立,再调用
#测试得到当test_自定义模块为模块文件时__name__为文件名
개요
__name__
파일에 대한 실행 파일이 때 각 파일은 변수를 가지고 __name__
있다 '__main__'
; 파일이 변경되는 모듈 파일 때 __name__
파일 이름
__name__
각 파일은,되는 변수가 __name__
파일을 수행하기를