我正在涉足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()
Run Code Online (Sandbox Code Playgroud)
这对于简单的临时测试很有用.通常会通过写入来使用此模块from mymodule import MyClass,在这种情况下_runTests()永远不会调用,但是在末尾使用代码片段,也可以通过python mymodule.py直接从命令行键入来运行它.
在Clojure(和/或常见的lisp)中是否有相同的习惯用法?我不是在一个完整的单元测试库之后(好吧,我,但不是在这个问题中),我只想在一个模块中包含一些代码,这些代码只能在某些情况下运行,所以我可以拥有一种快速运行代码的方法我一直在努力,但仍允许我的文件像普通模块/命名空间一样导入.