0

このガイドに従っていますが、基本的な機能が動作しません。

birthday2.py

def happyBirthdayEmily(): #program does nothing as written
    print("Happy Birthday to you!")
    print("Happy Birthday to you!")
    print("Happy Birthday, dear Emily.")
    print("Happy Birthday to you!")

ガイドに従って、次のように入力します。

>>>import birthday2
>>>happyBirthdayEmily

これは私が得るエラーです:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'happyBirthdayEmily' is not defined

ここで何が欠けていますか?

4

3 に答える 3

4

やったほうがいい:

>>>import birthday2
>>>birthday2.happyBirthdayEmily()

また:

>>>from birthday2 import happyBirthdayEmily
>>>happyBirthdayEmily()

また:

>>>from birthday2 import *
>>>happyBirthdayEmily()

モジュールについて詳しくはこちら

于 2012-11-03T17:14:57.970 に答える
3

happyBirthdayEmilyとモジュール参照の後にかっこがありません。次のようにします。

>>>birthday2.happyBirthdayEmily()

括弧はそれを関数呼び出しとして識別birthday2.し、冒頭の は単に「モジュールhappyBirthdayEmily()から関数を使用する」と言っています。birthday2これは次のように構成されています。これは、birthday2と呼ばれる別の関数 ( にはない) があるhappyBirthdayEmily()場合、Python インタープリターは基本的にどれを使用するかを認識できないためです。

于 2012-11-03T17:14:24.183 に答える
2

フルネームを使用する必要があります。

birthday2.happyBirthdayEmily()

()関数を呼び出す括弧を含めます。

または、少し異なる方法でインポートすることもできます。

from birthday2 import happyBirthdayEmily

関数をローカル名前空間にインポートします。

于 2012-11-03T17:15:09.973 に答える