Python 导包技巧

Python 导包技巧



起因

起初学 Go 语言的时候,对它的导包规则感到痛苦,——“那么麻烦干嘛呢!”。但最近接到一些新功能开发任务,于是 “啪嗒啪嗒” 写代码,结果更痛苦了。公司项目目录规划打一开始就不合理,以此为基础的 “繁荣发展” 导致更多混乱与麻烦。于是马上翻开《Python cookbook》解惑,有些心得,这里记之。

场景1

场景1:如何模块化代码,同时保证导入方式统一?

公司项目是老项目,因此代码祖传,常常一个 .py 文件里有上千行代码。恰巧现在重构(虽然并不是严格意义上的重构),同事们有意识地将代码拆分成多个文件。然后就有了这样的现象:

from onedir.twodir.file1 import func1
from onedir.twodir.three.file2 imort func2
from onedir.file3 import func3

目录结构如下:

Guan@Orchard:~/python/08/demo$ tree onedir/
onedir/
├── file3.py
├── __init__.py
└── twodir
    ├── file1.py
    ├── __init__.py
    └── three
        ├── file2.py
        └── __init__.py

2 directories, 6 files

很显然,要我记住哪个函数在哪个模块中这是很困难、又没意义的事。况且 onedir 里边的代码只有一个模块在使用,所以为什么不让调用方式统一一下呢?这里需要用到 Python 包中的 __init__.py 文件。

现在,修改 onedir 目录下的 init 文件,修改后变成下面这样:

# onedir/__i
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值