【发布时间】:2010-12-31 18:52:10
【问题描述】:
我有兴趣进入 C 以接近金属性能,但想以 Python 风格编写,不想滚动我自己的动态字符串、列表和字典。 Cython 非常好,但如果可能的话,想知道如何在直接 C 中使用动态变量。
对于 C++,当然有 STL,它会为您提供 String、Vector 和 Map。当然,一种可能性是在 C++ 中以类 C 风格进行编程,仅使用这些功能。如果您需要 C 中的动态变量,这是标准做法吗?
【问题讨论】:
-
I'm interested in getting into C but would like to write in a Pythonic style。不。这是C,不是python。它们大不相同。如果你想写python,写python。如果你想用 C 编写 python,你最终会得到可怕的代码。 -
@Falmarri:这当然是对的,但与此同时,将用一种语言学到的技术应用到另一种语言中会很有帮助。当然,前提是它不会让你的代码看起来像垃圾。
-
如果您使用 C 编写 Python,您将无法获得“接近金属性能”。使用正确的习语,而不是正确的语言,是 C 快速和轻便的原因。
-
@R:这根本不是真的。 Python 具有 GC、高级 VM 和动态类型的严重开销,这使得用 Python 和 C 编写的相同算法在 C 中几乎绝对快得多。