python-2.7 - python : i defined a function in a cl

我在 python 2.7 中运行这段代码进行练习,但无论我如何调用 fib(n) 函数,我每次都会遇到同样的错误,我不知道为什么它没有得到它。 这是代码:

    #!/usr/bin/python

class fibonacci:

    def fib(self,n):
        a=1
        b=0
        c=0
        count=0
        fibo=list()

        while count < n:
            c = a + b
            fibo.append(n)
            fibo.append(c)
            a = b
            b = c
            count += 1
        return fibo

n=int(raw_input("ingrese n: "))
s = fib(n)
print s

当我运行它时出现这个错误:

Traceback (most recent call last):
  File "./fib.py", line 22, in <module>
    s=fib(n)
NameError: name 'fib' is not defined
user@debian:~/Documents$ 

请帮忙

最佳答案

fib()fibonacci 类的一个方法,所以你必须这样调用它:

s = fibonnaci.fib(n)

如果您只是执行 fib(n),那么解释器会在任何类之外寻找名为“fib”的全局函数。在这种情况下,因为将它放在一个类中不会为该函数提供任何特定的实用程序,所以您可以这样做:

def fib(n):
    ...

s = fib(n)

(如果你把它放在一个类中作为命名空间的一种方式,请记住 Python 使用模块来简化这件事。)

关于python-2.7 - python : i defined a function in a class, 但随后它掉落 "name error, function is not defined",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13639065/

相关文章:

eclipse - 为什么 MANIFEST.MF 看不到来自 Maven 的 pom 的包?

jasper-reports - 字符串表达式的模式(格式)

xcode - 如何在 XCode/clang 中为 iPhone 编译独立的 ARM 程序集文件

jdbc - 如何使用 clojure.jdbc 查询列表

jenkins - 如何在 jenkins slave agent 重启后重新启动构建应用程序

php - 关闭旧的 php websocket

scala - 如何复制实例并覆盖特征中声明的值字段

opengl-es - 我可以在顶点着色器中访问 gl_PointCoord 吗?

cuda - 寄存器溢出是否可能导致 CUDA_EXCEPTION_5,Warp Out-Of-Ra

c# - Reader.Read() 无法读取行,即使它有行