2017-03-06 13 views
0

完全な初心者ですので、やさしくしてください。私はモジュールに関するPythonチュートリアルドキュメンテーションを通して作業していて、fibo.fib3(n)を使用して呼び出すことができるかどうかを確認するために、この例に第3の関数fib3(n)を追加しようとしました。オリジナルのfibとfib2はまだPythonシェルで呼び出すことができますが、何らかの理由でfib3が属性エラーAttributeError: module 'fibo' has no attribute 'fib3'を返しています。私はここで何か初歩的なものが欠けていることを知っているが、我々はどこかに出発しなければならない。どんな助けもありがとう。前もって感謝します。コメントとしてフィボナッチ関数のPython AttributeError

def fib(n): # write Fibonacci series up to n 
    a, b = 0, 1 
    while b < n: 
     print(b, end=' ') 
     a, b = b, a+b 
    print() 

def fib2(n): # return Fibonacci series up to n 
    result = [] 
    a, b = 0, 1 
    while b < n: 
     result.append(b) 
     a, b = b, a+b 
    return result 

def fib3(n): # return modified series 
    result = [] 
    a, b = 0, 1 
    while b < n: 
     result.append(b) 
     a, b = b, a+(b**2) 
    return result 
+1

多分、モジュールをリロードする必要があります。 [mcve]してください。 –

+0

あなたのコードは適切に意図されていますか? –

答えて

0

勧め:

  • は、あなたのモジュールをリロードしてみて、それは(ほとんどの場合)を動作するかどうかを確認。
  • それ以外の場合は、コードが正しくインデントされていることを確認してください。

しかし、同じファイル内で呼び出す場合は、fib3(n)と書いてください。

0

実際には動作しますが、「Fibo import fib3から」と「import fibo」とそれ以降の配列= fibo.fib3(4)を試してみました。 シェルを再ロードしてみてください。

0

これが解決されました。問題は、モジュールを再インポートする前にシェルを閉じていないということでした。そのため、キャッシュされたバージョンをインポートしている必要があります。

関連する問題