<p>是的,您当然可以用Python来实现这一点</p>
<p>如果常量只是一个数字,比如说,您刚刚发现了<a href="http://www.youtube.com/watch?v=jG7vhMMXagQ" rel="nofollow">tau</a>,那么您只需在模块中声明它,然后将该模块导入所有其他源文件中:</p>
<p>在常量.py公司名称:</p>
<pre><code># Define my new super-useful number
TAU = 6.28318530718
</code></pre>
<p>其他地方:</p>
^{pr2}$
<p>扩展一下,如果你有一个更复杂的结构,比如字典,你需要很长时间来计算,那么你可以在你的模块中声明它:</p>
<p>在常量.py公司名称:</p>
<pre><code># Verified results of the national survey
PEPSI_CHALLENGE = {
'Pepsi': 0.57,
'Coke': 0.43,
}
</code></pre>
<p>你可以对越来越复杂的数据这么做。最终的问题是,仅仅编写常量模块变得越来越困难,数据也越复杂,如果偶尔重新计算要缓存的值,则更新会变得尤其困难。在这种情况下,您需要查看<a href="http://docs.python.org/3.3/library/pickle.html" rel="nofollow">pickling</a>数据,可能是python脚本计算数据的最后一步,然后将该数据加载到导入的模块中。在</p>
<p>为此,导入pickle并将单个对象转储到磁盘文件:</p>
<p>在重新计算.py公司名称:</p>
<pre><code># Here is the script that computes a small value from the hugely complicated domain:
import random
from itertools import groupby
import pickle
# Collect all of the random numbers
random_numbers = [random.randint(0,10) for r in xrange(1000000)]
# TODO: Check this this should definitely be 7
most_popular = max(groupby(sorted(random_numbers)),
key=lambda(x, v):(len(list(v)),-L.index(x)))[0]
# Now save the most common random number to disk, using pickle
# Almost any object is picklable like this, but check the docs for the exact details
pickle.dump(most_popular, open('data_cache','w'))
</code></pre>
<p>现在,在常量文件中,您可以简单地从磁盘上的文件中读取pickled数据,并且无需重新计算就可以使用它:</p>
<p>在常量.py公司名称:</p>
<pre><code>import pickle
most_popular = pickle.load(open('data_cache'))
</code></pre>
<p>其他地方:</p>
<pre><code>from constants import most_popular
</code></pre>