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

在一个函数内访问一个函数(嵌套函数?)

施飞雨
2023-03-14
问题内容

Python noob在这里。如何在“ fib”功能中掌握“内部”功能?

from time import sleep

class Fibonacci(object):

    def __init__(self, a, b, limit=50):
        self.a = a
        self.b = b
        self.limit = limit

    def fib(self):

        while self.a < self.limit:
            c = self.a + self.b
            sleep(1)
            print self.a,
            self.b = self.a
            self.a = c

        def inner(self):
            print 'Damn it! Just print already!'


j = Fibonacci(0,1,2)
j.fib()

## This doesn't work. Gives an "AttibuteError: 'function' object has no attribute 'inner'"
j.fib.inner()

问题答案:

您不能,除非以某种方式fib返回,否则不能inner
inner本质上是范围内的局部变量fib,您不能从外部访问函数的局部变量。(这甚至不会是有意义的,因为该功能正在运行时,除了不存在当地人想想看-
这将是有意义的访问fibc变量从功能之外吗?)



 类似资料:
  • 我在尝试访问在其他函数中声明的变量时遇到问题。 这是我的代码: 我试图退回var,但没有成功。

  • 问题内容: 我想知道如何访问另一个函数中的一个函数。我看到了这样的代码: 那么,还有另一种方法来调用该 函数吗?我的第二个问题是,为什么在最后一行中我不打电话? 很好的解释深表感谢。 问题答案: 不,您不能直接调用它,因为它是的局部变量。 您需要使用,因为调用时返回了函数对象。要执行此功能对象,您需要 在这里您可以直接调用它,因为您可以访问它,因为它是由函数返回的。返回的对象实际上称为 闭包, 因

  • 我定义了一个名为marger的函数来查找两个参数(num1、num2)之间的较大数。现在,我想在另一个名为“最大”的函数中使用这个函数,这个函数获得一个数组并返回该数组的最大个数,但我被卡住了。有人能帮我吗?下面是我的代码:

  • 问题内容: 如果我有这个: 我之前已定义,因此效果很好。 我的问题是在第6行中调用。我试图用相同的定义在第一个函数之外进行定义,但是即使调用,它也始终相同。 我希望每次调用第一个函数然后再调用第二个函数时,都具有一个不同的。 我能做到这一点,而不界定外? 问题答案: 是的,您应该考虑在一个类中定义您的函数,并使word成为成员。这比较干净 创建类后,您必须将其实例化为对象并访问成员函数。 另一种方

  • 问题内容: 我得到了一段我不明白的javascript代码: 如何在另一个函数中定义一个函数?我们可以从my()函数外部调用pad2()吗? 请给它一些照明。谢谢 问题答案: 函数是JavaScript中变量的另一种类型(当然有些细微差别)。在另一个函数中创建一个函数会更改该函数的作用域,就像改变变量的作用域一样。这对于与闭包一起使用以减少总体全局名称空间污染尤其重要。 除非已将另一个函数中定义的

  • Scala 函数 我们可以在 Scala 函数内定义函数,定义在函数内的函数称之为局部函数。 以下实例我们实现阶乘运算,并使用内嵌函数: object Test { def main(args: Array[String]) { println( factorial(0) ) println( factorial(1) ) println( factor