当前位置: 首页 > 面试题库 >

查明是否已调用函数

石超
2023-03-14
问题内容

我正在用Python编程,我想知道是否可以测试代码中是否已调用函数

def example():
    pass
example()
#Pseudocode:
if example.has_been_called:
   print("foo bar")

我该怎么做?


问题答案:

如果该函数知道其自己的名称是可以的,则可以使用function属性:

def example():
    example.has_been_called = True
    pass
example.has_been_called = False


example()

#Actual Code!:
if example.has_been_called:
   print("foo bar")

您还可以使用装饰器设置属性:

import functools

def trackcalls(func):
    @functools.wraps(func)
    def wrapper(*args, **kwargs):
        wrapper.has_been_called = True
        return func(*args, **kwargs)
    wrapper.has_been_called = False
    return wrapper

@trackcalls
def example():
    pass


example()

#Actual Code!:
if example.has_been_called:
   print("foo bar")


 类似资料:
  • 我正在使用Jest测试一些实用函数。 my_util.js: 另一个例子。js: 测试调用了的最简单方法是什么?这是我当前的单元测试,它失败了。有没有一种方法可以测试函数是否以其名称调用? 结果:

  • 假设我们有一个函数和另一个函数 我们希望编写一个Unit测试,检查是否调用了的次数和正确的参数。 那里有 但这只是指最后一次通话。所以假设调用,然后,调用的断言是。 此外,还有 这将生成一个包含正确参数的对象列表。将这个列表与我们在单元测试中创建的对象进行比较,感觉是一件非常讨厌的事情<代码>调用似乎是模拟库的一个内部类。 有更好的方法吗?我使用这个设置来测试函数的并行执行。

  • 问题内容: 如果返回错误,是否仍在调用? 问题答案: 不,延迟功能不会运行。 这是log.Fatal的描述: 致命等同于Print(),然后调用os.Exit(1)。 呼叫,其描述在这里: 退出使当前程序以给定的状态码退出。按照惯例,代码零表示成功,代码零表示错误。程序立即终止;延迟功能未运行。 示范 如果您确实需要在程序完成之前正确关闭资源或执行某些任务,请不要使用。

  • 一个类似于Iterator中的的方法,在异常抛出和布尔返回行为中(尽管没有与的约定)。 示例: 目标是在客户端代码调用此方法而不消耗流的情况下早期失败。 一个可接受的答案也可以是“没有解决方案存在”,并有充分的理由说明为什么规范不能添加这样的方法(如果有充分的理由的话)。看起来JDK流通常在其终端方法的开头有以下代码段: 因此,对于这些流,实现这样的方法似乎并不困难。

  • 我的问题是:为什么调用不更快或更好,从而更可取?

  • 问题内容: WKWebView类是否具有一个函数,可让您检测该WebView的URL是否已更改? 使用WebView中的某些元素时,and 函数似乎并不总是会触发。 编辑: 尝试添加一个通知观察器。到目前为止,这是我所拥有的: 问题答案: 您是什么意思,他们似乎并不总是会开除?什么样的元素?他们必须为了WkWebView起作用。 该URL试图更改的第一个迹象是在:DecisionPolicyFor