2
我目前工作的一个包装了C-库模块(我们称之为foo
)模块应该导出一个名为`exit()`的函数吗?
的C-图书馆的职能由foo_
前缀,以避免与其他库nameclashes:
int foo_dothis(int x, int y);
void foo_dothat(struct foo_struct_*s);
在python中,前缀foo_
没什么意义,因为我们有这种类型的命名空间。
import foo
foo.dothis(42)
的C-库还具有用于初始化/ deinitializing整个库函数:
int foo_init(void);
void foo_exit(void);
现在我想知道是否应剥去对于那些foo_
前缀,以及,为了防止与内置exit()
困惑:
from foo import *
exit()
我想这是确定的,因为
- 是一致是很重要的
exit()
更容易记住比foo_exit()
foo.exit()
是漂亮比foo.foo_exit()
- 的人一般不提倡使用在生产代码
exit()
(应该仅在解释使用它) - 导入模块中的所有符号无论如何都会产生问题
那么,什么是对的共同做法(最佳实践,...)