0

私はPythonに戻ってきて、本当に基本的な問題を抱えています....

私のソースには次のものがあります...

def calrounds(rounds):
    print rounds

これをシェルで実行し、calrounds(3) を呼び出そうとすると、..

Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    calrounds(3)
NameError: name 'calrounds' is not defined

私がpythonを使用してからしばらく経ちました。ユーモアを交えて。

4

3 に答える 3

2

あなたがimport最初にあなたの情報源を見つけましたか?

于 2013-02-05T17:24:03.350 に答える
1

calroundsプログラムの最初の行がパラメータで呼び出していることを示しています3。これを関数定義の下に移動します。関数を呼び出す前に、定義を行う必要があります。Python 3.0以降を使用している場合は、printステートメントに括弧が必要です。

>>> def calrounds(rounds):
    print(rounds)


>>> calrounds(3)
3 
于 2013-02-05T17:20:18.183 に答える
1

最初に行うことは、関数の呼び出し方法を確認することです。それが にあると仮定するとmyModule.py、あなたはしましたかimport myModule、それともしましたかfrom myModule import calrounds? 最初のものを使用した場合は、それを として呼び出す必要がありますmyModule.calrounds()

次に行うことは、インタープリターを再起動していることを確認することです。importモジュールを ed した場合、importing再びソースをリロードせず、既にメモリにあるものを使用します。

次の可能性は、あなたが思っているものとは異なるファイルをインポートしているということです。別のディレクトリにいるか、標準ライブラリから何かをロードしている可能性があります。その後、作業していると思われるファイルであるかどうかを確認してくださいimport myModuleprint myModule.__file__20 年間プログラミングを続けてきた今でも、これを年に 1 回程度行っていることに気づき、信じられないほどイライラします。

最後に、Python の動作がおかしくなっている可能性があります。あなたの隣にmyModule.pyあるでしょうmyModule.pyc- これはPythonがコンパイルされたコードを置く場所で、モジュールをより速くロードできるようにします. 通常、ソースが変更されているかどうかを判断するのに十分なほどスマートですが、場合によっては失敗します。ファイルを削除.pycし、インタープリターを再起動します。

于 2013-02-05T17:32:48.877 に答える