不要写test.py这样的module

帮几个小伙伴解决Houdini中心化配置都在问我这个问题,Andy,为什么我定义的test.py在Houdini导入使用会出错啊?

这个简单的问题背后是值得思考的,是否思考过包的命名,模块的命名,类的命名,函数的命名这些?

先来讲一下为什么我写个test.py或者test这样的包会导致的问题吧

我们打开系统命令行

在Houdini Python Shell中

可以看到test实际是python模块库中的一个包形式本身就存在的,如果此时你自己写了一个test.py文件导入的话,实际导入的并不是你写的这个模块,自然就得不到你想要的结果。

那Python不能存在两个同名的模块么?当然不是,可以同时存在,但Python是通过sys.path中路径先后顺序引用的,不幸的是,自己写的test.py模块路径排在了最后,所以会先导入库里面的test模块。

为了避免这种情况,可以使用包来组织自己的模块,在包里面写test是没有问题,但笔者还是建议不要这样去写,还是多看看Python规范文档,对自己的模块命名要求严格一些,下面的是谷歌的规范,之前发过文章,还是多参考参考

PEP 8中也有相当一部分内容是关于命名规范的描述

还有一种驼峰的命名方式,我也蛮喜欢,孰好孰坏,选择自己喜欢的。

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180123G00ZF200?refer=cp_1026

扫码关注云+社区