擅长:python、mysql、java
<p>虽然似乎确实有一个名为<a href="http://code.google.com/p/pypp/" rel="nofollow noreferrer">pypp</a>的python预处理库,但我并不完全熟悉它。实际上,python内置没有预处理功能。Python代码被翻译成字节码,没有中间步骤。如果您是python的初学者,我建议您完全避免使用pypp。在</p>
<p>与宏最接近的等价物可能是定义全局函数。相当于C风格宏的python可能是:</p>
<pre><code>import sys
OBJWITHSIZE = lambda x: sys.getsizeof(x) / sys.getsizeof(x[0])
aList = [1, 2, 4, 5]
size = OBJWITHSIZE(aList)
print str(size)
</code></pre>
<p>请注意,您很少需要获得python对象的大小,因为所有的分配和删除都是在python中为您处理的,除非您正在做一些非常奇怪的事情。在</p>
<p>您也可以执行以下操作,而不是使用lambda函数:</p>
^{pr2}$
<p>基本上是一样的。在</p>
<p>如前所述,您的示例宏在python中是多余的,因为您可以简单地编写:</p>
<pre><code>aList = [1, 2, 4, 5]
size = len(aList)
print str(size)
</code></pre>