假设我有一个Python函数f
和fhelp
。fhelp
旨在以递归方式调用自身。f
不应递归调用。有没有办法f
确定是否已递归调用它?
为此使用追溯模块:
>>> import traceback
>>> def f(depth=0):
... print depth, traceback.print_stack()
... if depth < 2:
... f(depth + 1)
...
>>> f()
0 File "<stdin>", line 1, in <module>
File "<stdin>", line 2, in f
None
1 File "<stdin>", line 1, in <module>
File "<stdin>", line 4, in f
File "<stdin>", line 2, in f
None
2 File "<stdin>", line 1, in <module>
File "<stdin>", line 4, in f
File "<stdin>", line 4, in f
File "<stdin>", line 2, in f
None
因此,如果堆栈中的任何条目指示从f
调用了代码,则该调用是(间接)递归的。该traceback.extract_stack
方法使您可以轻松访问此数据。if len(l[2] ...
下面的示例中的语句仅计算函数名称的完全匹配数。为了使它更漂亮(感谢agf的想法),您可以将其变成装饰器:
>>> def norecurse(f):
... def func(*args, **kwargs):
... if len([l[2] for l in traceback.extract_stack() if l[2] == f.func_name]) > 0:
... raise Exception, 'Recursed'
... return f(*args, **kwargs)
... return func
...
>>> @norecurse
... def foo(depth=0):
... print depth
... foo(depth + 1)
...
>>> foo()
0
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 5, in func
File "<stdin>", line 4, in foo
File "<stdin>", line 5, in func
Exception: Recursed
本文向大家介绍是否可以从一个static方法内部发出对非static方法的调用?相关面试题,主要包含被问及是否可以从一个static方法内部发出对非static方法的调用?时的应答技巧和注意事项,需要的朋友参考一下 不可以。因为非static方法是要与对象关联在一起的,必须创建一个对象后,才可以在该对象上进行方法调用,而static方法调用时不需要创建对象,可以直接调用。也就是说,当一个stati
为什么不检查它是否可以分配内存? 摘自: 如果分配导致堆栈溢出,则程序行为未定义。…如果无法扩展堆栈帧,则没有错误指示。 现在和都返回一个指针,指向新分配的内存的开始,这意味着它们都必须知道堆栈/堆在当前时刻的结束位置。实际上,来自: 调用增量为0的sbrk()可以用来查找程序中断的当前位置。 因此,按照我的理解,检查是否可以分配所需的内存,本质上归结为检查堆栈的当前末端和堆的当前末端之间是否有足
我正在努力使倒计时功能,这将停止时,计时器达到0。到目前为止发生的是,当计时器到达0(我没有按任何键)时,它一直向我发送默认的消息,直到我单击一个按钮,它才停止。 我想在中插入一些代码,这将停止计时器(一旦它为零,显示消息并停止向我发送垃圾邮件)。我已经尝试了等的多个变体。 当前上下文中不存在名称“计时器”。 代码:
我有一个角度服务公开了一个公共方法。在它的主体中,可以根据条件调用两个不同的私有方法 如何根据传递给公共方法的输入参数,与jasmine一起检查是否调用了一个或另一个方法?我知道我们不应该测试私有方法,但实际上在这里我只想验证公共方法是否调用了正确的私有方法。我不想公开私有方法,因为我只希望服务提供一个访问点。 我的服务方式: } 茉莉花试验: });
问题内容: 我知道jython允许我们从任何Java的类文件中调用Java方法,就好像它们是为python编写的一样,但是相反的可能吗? 我已经有很多用python编写的算法,它们在python和jython上都可以很好地工作,但是它们缺少适当的GUI。我计划将GUI与Java一起使用,并保持python库完整。我无法使用jython或python编写良好的GUI,也无法使用python编写良
我有3个子类,每个都有唯一的ImagePath。 因此,我实现了,因为所有实例共享相同的映像。 问题就在这里。我想从父实例调用子静态方法。 当然,我可以使用调用基于类的静态方法。 假设我有10个子类,使用if-else语句并逐个调用它并不容易。 在Java中有没有办法从父实例调用子静态方法??