文件就是一个模块,文件夹就是一个包
文件夹里面可以有很多文件,就相当于包中有好多的模块.
import 模块或者包(包是文件夹,模块是文件)
模块不会被重复导入,引入一次终生受益
\'\'\'
调用的时候:
模块.变量
模块.函数
模块.类
\'\'\'
(1) 模块.变量
print(mymodule.cat)
(2) 模块.函数
mymodule.jump()
(3) 模块.类
print(mymodule.Classroom().name)
import.引入并起别名 , as 后面写这个模块的别名
别名.变量
别名.函数
别名.类
import导模块的时候,会从sys.path提供的路径下去找,找不到就报错
import sys
print(sys.path)
\'\'\'
调用的时候:
直接使用这个变量
直接使用这个函数
直接使用这个类
\'\'\'
# 可以导入所有,单个,多个
from module4 import * ... from module4 import girl print(girl) from module4 import girl as g,boy as b #多个 print(b)
返回模块名字的魔术属性 __name__
如果当前文件是直接运行的,返回\"__main__\"字符串
如果当前文件是间接导入的,返回当前文件名(模块名)
如果想把包当成模块用,在创建一个__init__.py中进行定义
当引入一个包的时候,当前包下的__init__文件自动执行.
import package1.module1
import package1.module1 as pm print(pm.girl)
# from package1.module2 import * #所有 # print(boy1) # from package1.module2 import boy1 #单个 # print(boy1) # from package1.module2 import boy1,lng21,Bf1 #多个 # lng21()
分模块不能单独进行调用,统一由主文件main进行调用
模块之间的互相嵌套导入,使用相对路径实现
单入口文件必须和包在同一层级,包里面可以含有各种包和模块
# from . import pkg 相对于当前路径引入模块 # from .pko2 import ceshi204 相对于当前模块引入具体属性 # from .. import pkg2_module1 相对于上一级引入模块 # from ..pkg2_two import pkt1 相对于上一级的某个包引入模块 # from ..pkg2_two.pkt2 import ceshi209 相对于上一级某个包下的某个模块引入某属性
. 当前路径 .. 上一级路径 ... 上一级的上一级 .... 上一级的上一级的上一级 ..... (这里的点是无限的) from .......................................... import 模块
来源:https://www.cnblogs.com/shuaiyao666/p/16004079.html
本站部分图文来源于网络,如有侵权请联系删除。