作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 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/
我是一名优秀的程序员,十分优秀!