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

如何从外部编写带有变量的函数?

韶云瀚
2023-03-14
问题内容

希望您能提供帮助。我正在寻找一种编写稍后插入一个项目的函数的方法。让我给你看一个例子:

def general_poly(L):
        """ 
        L, a list of numbers (n0, n1, n2, ... nk)
        Returns a function, which when applied to a value x, returns the value 
        n0 * x^k + n1 * x^(k-1) + ... nk * x^0 
        """
        x = 1
        res = 0
        n = len(L)-1
        for e in range(len(L)):
            res += L[e]*x**n
            n -= 1
        return res

我以为我可以在x这里提供一个值,一旦我general_poly(L)(10)将其替换,那么x = 10显然就不那么容易了。我必须更改/添加什么才能使我的功能正常工作?函数如何知道乘法是x?谢谢你们的帮助!


问题答案:

系统要求您返回一个函数,但返回的是计算得出的值:

def general_poly(L):
    """ 
    L, a list of numbers (n0, n1, n2, ... nk)
    Returns a function, which when applied to a value x, returns the value 
    n0 * x^k + n1 * x^(k-1) + ... nk * x^0 
    """
    def inner(x):
        res = 0
        n = len(L)-1
        for e in range(len(L)):
            res += L[e]*x**n
            n -= 1
        return res
    return inner

现在general_poly(L)(10)将执行您期望的操作,但是如果将其分配给一个值,它可能会更有用,因此可以多次调用它,例如:

L = [...]
fn = general_poly(L)
print(fn(10))
print(fn(3))

您还可以重写inner为:

def general_poly(L):
    return lambda x: sum(e*x**n for n, e in enumerate(reversed(L)))


 类似资料:
  • 问题内容: function parts($part) { $structure = ‘http://’ . $site_url . ‘content/’; echo($tructure . $part . ‘.php’); } 该函数使用在页面顶部定义的变量,但是此变量未传递到该函数中。 我们如何使它返回到函数中? 问题答案: 添加第二个参数 您需要将其他参数传递给函数: 如果关闭 如果您希望使

  • 问题内容: 如果我有一个函数(在Python 2.5.2中)像这样: 我的问题是: 如何在 不 使用函数内部的 locals()的 情况下 从外部 获取 函数的局部变量(a,b)?(反射的种类) 是否可以从外部设置局部变量(例如 x ),以便注释行起作用?(我知道这听起来很奇怪)。 提前致谢。 编辑 : 每个人都在寻找用例。但这是一个奇怪的情况。(不要怪我,我没有创造出来)。这是场景: 我有一个包

  • 我试图弄清楚如何从函数的外部获取变量,在jQuery的函数内部获取变量,但我得到的是。有什么办法可以做到这一点吗? 我的代码的一个简单示例: 但当我在函数外定义变量时,它起作用: 为什么? 感谢任何帮助!谢谢!

  • 问题内容: 我想要一个可以将变量/对象名称返回为str的函数,如下所示: 它看起来很傻,但是我需要该函数来构造有关变量的表达式,以供以后在’exec()’上使用。有人可以帮忙写“ get_variable_name”吗? 问题答案: 我现在已经在SO上多次见过关于这种问题的一些变体。答案是 否定的 。 学会随时使用名称和对象之间的关联。 稍后您将为此感谢自己。 在回答“我的代码如何发现对象的名称?

  • 问题内容: 我想使用匿名函数,所以我决定制作一个简单的主要查找器。这里是: 然而,我发现了什么,就是在每次访问,而我希望它是一个字面上的数字。我怎样才能使其成为替代? 问题答案: 您可以在创建lambda时“捕获” 这会将lambda的上下文设置为等于创建时的值。您还可以说,如果需要的话,它并不能完全捕获,但是可以满足您的需要。 这是一个查找问题,类似于具有定义函数的以下内容:

  • 问题内容: 这不是直截了当的问题。在我的情况下,外部类变量和内部类setter方法的参数名称相同。喜欢: 现在,我无法初始化外部类实例变量p,因为它指示内部类。再次,我做不到它得到一个错误。现在如何分配外部p,同时将内部Class方法的参数命名为p? 问题答案: 这是您可以/应该这样做的方式: