Python doctests很酷.让我从一个简单的例子开始:
def foo():
"""
>>> foo()
hello world
"""
print "hello world"
Run Code Online (Sandbox Code Playgroud)
现在让我们假设某些部分有些变化,例如,因为它是时间值或随机数.通常,doctests允许我使用+ ELLIPSIS选项指定通配符.
当例如"world"是变化的字符串时,这很好用:
def foo():
"""
>>> foo() # doctest: +ELLIPSIS
hello ...
"""
print "hello world"
Run Code Online (Sandbox Code Playgroud)
但是,在我的情况下,变量字符串位于行的开头:
def foo():
"""
>>> foo() # doctest: +ELLIPSIS
... world
"""
print "hello world"
Run Code Online (Sandbox Code Playgroud)
这是不好的,因为开头的3个点被解释为行连续字符而不是输出的省略号.因此,此测试失败:
Failed example:
foo() # doctest: +ELLIPSIS
world
Expected nothing
Got:
hello world
Run Code Online (Sandbox Code Playgroud)
所以,我现在可以重写我可以将变量部分放在其他地方,但有没有办法教doctest一行开头的3个点是省略号?
我正在尝试安装包含C模块的Python模块.C代码依赖于系统的全局安装位置(/ usr/include,/ usr/lib)中可用的库,但在我的情况下,我只有本库的本地安装可用.因此,我想在调用"setup.py build"时传递参数(例如, - incdir, - libdir),以便这些值最终出现在安装脚本中.
有没有办法实现这个目标?
使用objdump来理解二进制文件,我意识到我在ASM语法方面不够流畅.以下概念意味着什么?
xor %al,-0x1(%edx,%ecx,1)
Run Code Online (Sandbox Code Playgroud)
当你在它的时候 - 我应该搜索什么才能找到关于这些概念的文档?