【发布时间】:2015-05-18 09:47:03
【问题描述】:
我目前正在开发一个封装 C 库的模块(我们称之为 foo)
C 库的函数以 foo_ 为前缀,以避免与其他库发生名称冲突:
int foo_dothis(int x, int y);
void foo_dothat(struct foo_struct_*s);
在 python 中,foo_ 前缀没有什么意义,因为我们有用于此类事物的命名空间。
import foo
foo.dothis(42)
C 库还具有初始化/取消初始化整个库的功能:
int foo_init(void);
void foo_exit(void);
现在我想知道是否也应该去掉 foo_ 前缀,以防止与内置的 exit() 混淆:
from foo import *
exit()
我觉得还可以吧
- 保持一致很重要
-
exit()比foo_exit()更容易记住 -
foo.exit()比foo.foo_exit()漂亮 - 通常不鼓励人们在生产代码中使用
exit()(并且应该只在解释器中使用它) - 从一个模块中导入所有符号无论如何都会带来麻烦
那么常见的方法是什么(最佳实践,...)
【问题讨论】:
标签: python module naming-conventions