模块与包概念

什么是模块?

模块是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。

解释器中有内置模块( 例如:time、sys模块等,由c语言实现的),可以找到的不是内置模块( 例如re、os模块等)

import 先找内置模块 再找执行文件路径下模块 再找python中自带的

import:1、执行对应文件   2、引入变量名(步骤)

注意:import 文件后文件会缓存在内存, import 多次有可能是 import 同一个文件

import  模块名,模块名          #导入多个模块可以这样写

from  模块名  import  函数名       #导入需要的函数

from  模块名  import  *        #不推荐

多个 py 文件相互调用,系统只认识 执行文件的路径( sys.path ),故调用时要按该路径寻找文件,想调用某下级目录文件需要从平级目录调用下级目录

#my_lesson包 和 bin.py 同级,想要调用 my_lesson 下的 main.py
from my_lesson import main

什么是包?

包就是文件夹,但该文件夹下必须存在 __init__.py 文件,同时包下面还可以包含包

#当出现包下有包的情况,想调用 cal.py 模块的方法
from web.web1.web2 import cal        #引入 cal.py 模块
from web.web1.web2.cal import add    #cal.py 中引入 add 方法

from web.web1 import web2      #执行web2中__init__.py文件 (唯一不支持的调用方式)



包内引用

如果是子包内的引用,可以按相对位置引入子模块 以 echo 模块为例,可以引用如下:

1 from . import reverse              # 同级目录 导入 reverse
2 from .. import frormats            # 上级目录 导入 frormats
3 from ..filters import equalizer    # 上级目录的filters模块下 导入 equalizer
 

__name__:在执行文件中等于"__main__",在调用文件中等于 调用模块名

1、from web.web1.cal import add
#在cal中print(__name__) 会返回 web.web1.cal
2、from web.web1 import cal
#在cal中print(__name__) 会返回 web.web1.cal

__file__:所在文件名(返回相对路径,但在pycharm会返回绝对路径)

#引用上级目录的方法
import os,sys
BASE_DIR=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(BASE_DIR)
print(sys.path)

#之后就可以引用上级目录

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值