Python之模块详细梳理(一)

模块的定义:

在python中模块就是.py文件。模块中的语句分2种,一种是可执行语句,另一种是延迟执行语句。

自定义模块:就是自行定义的.py文件,其中包括:说明文档、变量定义、可执行语句、函数定义、类定义等,它们统称为模块的成员。

模块的运行方式:

  • 脚本方式:直接用解释器执行,或用IDE运行。__name__变量在脚本方式运行时,它的值是“__main__”。
  • 模块方式:被其它模块导入,为导入它的模块提供资源(变量、函数、类等)。模块被导入时可执行语句会立即执行。__name__变量在模块方式运行时,它的值是本模块的名字。

所以可对__name__变量进行判断,若以脚本方式运行模块文件,那么会立即执行main函数。若以模块方式运行模块文件,那么main函数不会立即执行。

导入模块的路径:

  1. 内存中:若要导入的模块已在内存中,则直接使用它,不会重复导入。

  2. 官方路径:python解释器安装目录下\lib目录存放官方模块,另\lib\site-packages目录存放第三方模块 。不建议将自定义模块放入该路径,这样会污染搜索路径,若存在包名或模块名重名时会造成import 出错。

  3. 环境变量PythonPATH:import模块时也会查找这些路径。不建议修改这个变量,也不建议将自定义模块放入这些路径下,这样也会污染搜索路径,若存在包名或模块名重名时会造成import 出错。

  4. 自定义路径:在sys.path中存放了路径列表,可动态修改。建议使用这种方式修改import路径。

  • 其中sys.path[0]的内容是当前模块所在的父路径,sys.path[1]的内容是当前模块所在的项目路径。如果当前模块在项目路径下(非项目路径的子目录内),那么这2项目内容一致。

  • 导入当前模块同级目录下模块的方法。

    import sys
    
    def main():
        print(__name__)
        print(__file__)
        # import t1  # 未添加sys.path列表时导入会报错
        # 对__file__字符串从右边查找‘/’,确认当前模块相对路径,再加同级子目录名
        sys.path.append(__file__[0:__file__.rfind('/') + 1]+'test')
        import t1
        print(t1.a)
        print(t1.b)

若以上4种方式都找不到模块文件,就会导入失败。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值