微信号:grzlwx

介绍:光荣之路官方资讯

编写高质量代码–改善python程序的建议(三)完

2016-01-13 23:11 光荣之路

吴老的《selenium webdriver 实战宝典》出版了!


  1. 建议十七:构建合理的包层次来管理module
    本质上每一个python文件都是一个模块,使用模块可以增强代码的可维护性和可重用性。我们需要包(Package)来合理的组织项目的层次来管理模块。
    包即目录,但是与普通目录不同,它除了包含常规的python文件(模块)以外,还包含一个__init__.py文件,同时它允许嵌套。包结构如下:

    Package/ __init__.py
    Module1.py
    Molude2.py
    Subpackage/ __init__.py
    Module1.py
    Module2.py

    包中的模块可以通过 . 访问符进行访问,即包名.模块名。如上述嵌套结构中访问Package下的Module1可以使用Package.Module1,而访问Subpackage中的Module1则可以使用Package.Subpackage.Module1
    包中的模块同样可以被导入其他模块中,有以下几种方法:

  2. 直接导入一个包

    import Package
  3. 导入子模块或者子包

    from Package import Module1
    import Package.Module1
    from Package import Subpackage
    import Package.Subpackage
    from Package.Subpackage import Module1
    import Package.Subpackage.Module1

    前面提到包的目录下应该有init.py文件,它除了区分包和普通目录,还可以在该文件中申明模块级别的import语句从而使其编程包级别可见。举例来看:
    上例中如果要import包Package下Module1中的类Test,当__init__.py为空的时候需要使用完整路径

    from Package.Module1 import Test

    但是如果在__init__.py中添加from Module1 import Test语句,则可以直接使用下面语句来导入类Test

    from Package import Test

    注意:如果__init__.py为空,当意图使用from Package import *将包Package中所有的模块导入当前名字空间时并不可以,这是因为不同平台间的命名规则不同,python解释器不能正确判定模块在对应平台如何导入,因此它仅仅执行__init__.py文件,如果要控制模块的导入,则需要修改__init__.py

    __all__ = ['Module1', 'Module2', 'Subpackage']

    这样就可以了。
    包的使用可以带来如下便利:

  • 合理组织代码,易于维护和使用。以下是一个可供参考的python项目结构:

    ProjectName/
    |---README
    |----LICENSE
    |----setup.py
    |-----requirements.txt
    |------sample/
    | |----__init__.py
    | |----core.py
    | |----helpers.py
    |------docs/
    | |------conf.py
    | |------index.rst
    |------bin/
    |------package/
    | |-----__init__.py
    | |-----subpackage/
    | |-----......
    |------tests/
    | |------test_basic.py
    | |------test_advancde.py
  • 能够有效地避免名称空间冲突。

总结:至此罗列了python一些惯用法,掌握和熟练使用这些是非常必要的,后面会接着说一些基础语法需要注意的地方。

参考:编写高质量代码--改善python程序的91个建议

不向静中参妙理,纵然颖悟也虚浮 立乎其大 和而不同 古之成大事者,不惟有超世之才,亦必有坚韧不拔之志

相关阅读:

编写高质量代码–改善python程序的建议(一)

编写高质量代码–改善python程序的建议(二)

编写高质量代码–改善python程序的建议(三)

编写高质量代码–改善python程序的建议(三)

(作者:cotyb 来源:http://www.cnblogs.com/cotyb/p/5091318.html)

公益传播测试知识、技能与正能量!感谢作者!
分享测试生活,思考测试人生!欢迎投稿!
文章图片来自网络,如有侵权请见谅,请联系我们妥善处理。
735821166@qq.com

光荣之路
软件测试培训


官网:www.gloryroad.cn

微信公众号:gloryroadtrain

性能测试QQ群:415987441
测试招聘QQ群: 203715128
自动化3群QQ: 371211499

Python群:457561756

 
光荣之路 更多文章 今天晚上的 linux 公开课- Awk 编程 7月28日(今天)晚上的 linux 公开课- shell编程 8月4日(今天)晚上的 linux 公开课- shell编程 9月1日(本周一)晚8点半,光荣之路Web自动化系列基础课—javascript第二讲 推荐本好书《与机器赛跑》
猜您喜欢 Timber 经典的android Log封装库 python+selenium的应用(获取某省的交通违章数据) 新功能超赞哦:Team@OSC 更新,让代码跟任务自动关联 专访 | 丘成桐:巨型对撞机探索宇宙最深层奥秘的前景 世界最大黑客组织的宣战