美文网首页
python模块,包最优实践

python模块,包最优实践

作者: 德蒙_托尔斯泰 | 来源:发表于2017-12-08 11:13 被阅读84次

具体关于概念就不解释了,这里只说下最优实践方案
(iOS coder,学python中,如有错误还请告知,互相学习)

开发工具:pycharm

请参照demo,内附详细解释

3种导入方式,推荐第三种方式

  • 1导入包, improt包名, 调用方式:包》模块》函数
from core import main
if __name__ == '__main__':
    main.main.main()

要在____init____中导入相应模块

'''这里导入本模块下的做法 是针对于,外部只导入本包的话,外部通过packgename.main.func()调用时候
    
   如果是做开源模块,这里可以import包内的接口模块,表示这些都是暴露的接口
   
   反正这里主要import你的接口模块

   参见step中1 main包的导入方式
'''
from . import main
  • 2导入具体模块, import模块 调用方式:模块》函数
    这种无需在____init____中import具体模块, 不过推荐不管怎样都在____init____中import你的接口模块
# from core.main import main
# if __name__ == '__main__':
#     main.main()
  • 3项目根路径导入,pycharm有提示,
    注意要在程序入口将项目根路径加入sys.path中,不然通过python解释器直接运行会报错
project_base_dir = os.path.dirname(os.path.dirname(base_dir))
sys.path.append(project_base_dir)
# from HomeWork.package_manager.core.main import main
# if __name__ == '__main__':
#     main.main()
  • 4 动态import模块(不推荐),这里module是到package
module = __import__('core.main')
if __name__ == '__main__':
    module.main.main.main()
  • 5 动态import模块 (推荐), 这里main直接到相应模块了
import importlib
main = importlib.import_module('core.main')
if __name__ == '__main__':
    main.main.main()

其它

  • 注意package 每次被from 或者 improt ____init____都会被执行一次,某些情况下需要注意,所以____init____内不能放业务逻辑代码,具体最优方案,还没完全弄透,以后补充
  • 单独执行某个py脚本,sys.path把当前脚本的目录加进去了,所以你可以直接impot本目录下的其它模块和包

欢迎补充,发评论里,不到之处,望提醒

相关文章

  • python模块,包最优实践

    具体关于概念就不解释了,这里只说下最优实践方案(iOS coder,学python中,如有错误还请告知,互相学习)...

  • python 2.7 -> python 3.7 升级记录

    更换的模块 python 3.7 模块名python 2.7 模块名python 3.7 包python 2.7包...

  • Python高阶

    包(lib)、模块(module) 在Python中,存在包和模块两个常见概念。 模块:编写Python代码的py...

  • 核心开发

    Python核心开发 一.包和模块 1. 包和模块的定义 为了更加有好的对python代码进行管理,出现了包和模块...

  • Python包及其引入方法

    一、Python包 模块所在目录看做是包,目录名即为包名。 二、Python包创建 创建过程举例(模块中不包含类)...

  • python命名规范

    Google Python命名规范 module_name, 模块 package_name, 包 模块与包 ...

  • Python模块与包@2018-11-21

    Python模块与包 python语言中,如果希望实现代码的重用,除去使用类之外,模块与包是不错的选择。在此对模块...

  • python 模块和包

    模块和包 目标 模块 包 发布模块 01. 模块 1.1 模块的概念 模块是 Python 程序架构的一个核心概念...

  • 包和模块

    一、python中包和模块的区别: 1.包:包含 文件的文件夹,导入模块的可通过 变量。2.模块:编写python...

  • 笔记:Python的包和模块的区别

    Python中的模块和包的英文表示: 模块的英文:Module 包的英文:Packages 对模块和包的类比理解:...

网友评论

      本文标题:python模块,包最优实践

      本文链接:https://www.haomeiwen.com/subject/pgzsixtx.html