python - Python 的 "__init__.py"是否有 C/C++ 等价物?

标签 python c++ c++11

这个问题在这里已经有了答案:





Include all files in a directory?

(4 个回答)


去年关闭。




在 Python 中,当您创建一个模块时,您会创建一个 __init__.py文件(至少,通常)。这个东西有C/C++等价物吗?我的意思是有办法#include一个目录实际上包含一个文件?

最佳答案

不,C++ 本身没有这样的特性。似乎通常使用的编译器也不支持它。在 C++20 中引入了一个类似于 Python 模块的特性:https://en.cppreference.com/w/cpp/language/modules
你可能想看看像 SCons 这样的构建系统。或 CMake这将允许您在实际的 C++ 预处理/编译之前实现一些预处理。例如,您可以使用它们生成一个包含目录中所有头文件的头文件,或者如果您确实需要它,可以做任何更复杂的事情。
请务必考虑最后一句话的最后一部分:你真的需要它吗?如果代码的所有依赖项都是显式的,通常代码更容易维护。包含“所有内容”的标题将使其难以跟踪。可以想象一些打破这一规则的正当理由,例如如果这些 header 也生成了,并且希望有一种包含所有这些 header 的自动方式。尽管如此,最好是这种“魔法”的范围是独立的并且尽可能小。

关于python - Python 的 "__init__.py"是否有 C/C++ 等价物?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66135780/

相关文章:

python - Pycassa col_fam.get_indexed_slices(clause) 有什么问题

Python套接字,属性错误str没有属性加密

python - 将一行插入特定列的 Pandas Dataframe(没有名称)

c++ - PhysFS 可以使用 ifstreams 吗?

c++ - clang-format 主要包括以文件夹前缀排序

c++ - 模板化派生类的特化函数模板

python - dask worker 如何访问集群中当前的 worker 总数?

c++ - 如何使用 lambda 删除空 vector 单元格?

c++ - 面向WASM的C++代码(具有dlib和opencv)的编译面临的问题

c++ - 销毁后 C++ 的行为