什么是这个C/C++代码的惯用Python等价物?
void foo()
{
static int counter = 0;
counter++;
printf("counter is %d\n", counter);
}
Run Code Online (Sandbox Code Playgroud)
具体来说,如何在功能级别实现静态成员,而不是类级别?将函数放入类中会改变什么吗?
我实际上是在尝试用Java做这个,但我正在自学python的过程中,这让我想知道是否有一个简单/聪明的方法用包装器或其他东西来做这件事.
我想知道在另一个方法中调用特定方法的次数.例如:
def foo(z):
#do something
return result
def bar(x,y):
#complicated algorithm/logic involving foo
return foobar
Run Code Online (Sandbox Code Playgroud)
所以对于每次使用各种参数调用bar,我想知道foo被调用了多少次,也许是这样的输出:
>>> print bar('xyz',3)
foo was called 15 times
[results here]
>>> print bar('stuv',6)
foo was called 23 times
[other results here]
Run Code Online (Sandbox Code Playgroud)
编辑:我意识到我可以在栏内打一个计数器并在我返回时将其转储,但如果有一些魔法可以用包装来完成同样的事情,那将会很酷.这也意味着我可以在其他地方重用相同的包装器,而无需修改方法中的任何代码.