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

使用timeit.Timer()时如何传递函数的参数

李睿
2023-03-14
问题内容

这是一个简单程序的概述

# some pre-defined constants
A = 1
B = 2

# function that does something critical
def foo(num1, num2):
    # do something

# main program.... do something to A and B
for i in range(20):
    # do something to A and B
    # and update A and B during each iteration

import timeit
t = timeit.Timer(stmt="foo(num1,num2)")  
print t.timeit(5)

我只是不断获取“未定义全局名称foo” .....有人可以帮我吗?谢谢!


问题答案:

代码段必须是独立的-它们不能进行外部引用。您必须在statement-string或setup-string中定义值:

import timeit

setup = """
A = 1
B = 2

def foo(num1, num2):
    pass

def mainprog():
    global A,B
    for i in range(20):
        # do something to A and B
        foo(A, B)
"""

t = timeit.Timer(stmt="mainprog()" setup=setup)
print(t.timeit(5))

更好的是,重写代码以不使用全局值。



 类似资料:
  • 问题内容: 以传统方式添加事件侦听器: 但是我想适应addEventListener的方式: 它不起作用,因为我无法将getSelection()中的任何参数作为addEventListener方法中的第二个参数传递?据我所知,我只能使用没有括号的函数名。 任何的想法? 问题答案: 无需传递任何内容。用于的函数将自动绑定到当前元素。只需在您的函数中使用: 如果要将任意数据传递给函数,请将其包装在您

  • 我正在尝试使用杰克逊对物体进行去耳廓化 我有一个例外: 我知道这是因为这是我的构造函数: 所以,我的构造函数收到 HttpResponse 参数,我没有传递它,但我不知道该怎么做。我不能用空构造函数过度收费,因为我需要它以这种方式接收 HttpResponse 对象。当我调用 readValue() 方法时,有什么方法可以传递这个构造函数参数吗?或者在这种情况下最好的选择是什么?我感谢您的帮助。问

  • 问题内容: 一个非常菜鸟般的问题: 我正在尝试使用工厂方法构建资源对象: 这种方法很容易,因为所有参数都是预定义的,organEntity和organCommpassword是在tag中定义的。 现在,对于另一个资源对象,我需要在调用工厂时传递参数。 我想象该资源对象的调用代码应如下所示: 我知道query()方法可以添加参数: 我想知道是否只是传递参数,可以在工厂获得参数吗?如何在工厂方法中指定

  • 问题内容: 这似乎是一个愚蠢的问题,但是我是这个话题的新手。我正在致力于关于节点js的承诺。我想将参数传递给Promise函数。但是我不知道。 而功能类似于 问题答案: 将Promise包裹在一个函数中,否则它将立即开始工作。另外,您可以将参数传递给函数: 然后,使用它: ES6: 用:

  • 本文向大家介绍如何在PowerShell函数中传递参数?,包括了如何在PowerShell函数中传递参数?的使用技巧和注意事项,需要的朋友参考一下 您可以在PowerShell函数中传递参数,并且要捕获这些参数,需要使用参数。通常,当您在函数外部使用变量时,您实际上不需要传递参数,因为变量本身是Public,可以在函数内部访问。但是在某些情况下,我们需要将参数传递给函数,下面的示例说明了如何编写该

  • 有人能告诉我如何使用将数组参数传递给postgresql函数吗?我尝试了下面的方法,但是得到了错误: 例外 psqlException:无法推断用于[ljava.lang.Integer;]实例的SQL类型。使用带有显式Types值的setObject()来指定要使用的类型。 谢谢