有时我想在我的代码中插入一些打印语句,看看在我练习时会打印出来的内容.我通常的"锻炼"方法是使用现有的pytest测试.但是当我运行这些时,我似乎无法看到任何标准输出(至少来自PyCharm,我的IDE).
在pytest运行期间有没有一种简单的方法来查看标准输出?
class A:
@property
def p(self): return 2
def q(self): return 2
a = A()
A.p(a) #>> TypeError: 'property' object is not callable
A.q(a) #>> no error, returns 2
Run Code Online (Sandbox Code Playgroud)
为什么是这样?我理解如果我在一个实例上引用该属性:ap只会返回方法返回值,但我试图从该类的属性开始.我预计上面没有任何错误,两者都评估为2.
如果我有:
def f(x):
def g(y):
return x + y
return g
f2 = f(2)
Run Code Online (Sandbox Code Playgroud)
有没有办法找到f2将使用的'x'绑定?我看了检查,但无法判断是否有一些'框架'的东西适用.换句话说,我可以在下面定义一个closedVars():
def closed_vars(anF):
... return ...
assert closedVars(f2) == {'x': 2}
Run Code Online (Sandbox Code Playgroud) 我对装饰器还不够好...还是可以定义一个装饰器live_doc,它允许我在方法或函数调用之后获得插值的doc字符串,用实际的参数和返回值填充.
@live_doc("f was called with %d, %s and returned %d")
def f(x, y):
x + len(y)
Run Code Online (Sandbox Code Playgroud)
在下面的代码之后:
f(3, "marty")
d = f.doc
Run Code Online (Sandbox Code Playgroud)
d应该是"f被称为3,"marty",并返回8".在访问f.doc之前,我宁愿不构建字符串,但肯定需要在某处松开调用args和返回值.
对于单页应用程序:我希望每个 DOM 节点都有对单个(浏览器内)域对象的引用。只存储这样的直接引用是否可以:
var myDomainObject = ...;
var DOMNode = document.getElementById("myId");
DOMNode.domain_object = myDomainObject;
Run Code Online (Sandbox Code Playgroud)
这安全、可重复吗?浏览器可以通过附加的 JavaScript 属性来做一些神秘的事情吗?
谢谢。
我的ls输出将所有目录的颜色与文件的颜色不同,无论我输入ls还是/bin/ls. 我没有任何可以找到的LS_COLOR内容或相关文件。.bashrc
如何关闭这些颜色?(我已经很满意了ls -F)
谢谢!
l = [1, 2, 3]
a,b,c = [lambda: n*n for n in l]
a() #=> 9
b() #=> 9
c() #=> 9
Run Code Online (Sandbox Code Playgroud)
为什么是这样?我期望a(),b(),c(),为1,4和9.