【发布时间】:2010-11-01 16:00:48
【问题描述】:
我正在涉足 clojure,但在尝试确定这个常见的 python 习语的 clojure(和/或 Lisp)等价物时遇到了一些麻烦。
习语是在一个python模块的底部通常有一点测试代码,然后是运行代码的语句,例如:
# mymodule.py
class MyClass(object):
"""Main logic / code for the library lives here"""
pass
def _runTests():
# Code which tests various aspects of MyClass...
mc = MyClass() # etc...
assert 2 + 2 == 4
if __name__ == '__main__': _runTests()
这对于简单的临时测试很有用。人们通常会通过编写from mymodule import MyClass 来使用这个模块,在这种情况下,永远不会调用_runTests(),但是在最后加上sn-p,也可以通过直接从命令行输入python mymodule.py 来运行它。
Clojure(和/或常见的 lisp)中是否有等效的成语?我不是在追求一个成熟的单元测试库(嗯,我是,但不是在这个问题中),我只想在一个模块中包含一些代码,这些代码只会在某些情况下运行,所以我可以拥有一种运行我一直在处理的代码的快速方法,但仍然允许我的文件像普通模块/命名空间一样被导入。
【问题讨论】:
标签: python lisp clojure idioms