基本功能不起作用 - > 'name'happyBirthdayEmily'未定义'

时间:2012-11-03 17:13:23

标签: python function

我正在关注this guide,但我无法使用基本功能。

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

我在这里缺少什么?

3 个答案:

答案 0 :(得分:4)

你应该这样做:

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

或:

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

或:

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

详细了解模块here

答案 1 :(得分:3)

您在happyBirthdayEmily和模块参考后缺少括号。这样做:

>>>birthday2.happyBirthdayEmily()

parens将其识别为函数调用,并且开头的birthday2.只是说“使用happyBirthdayEmily()模块中的函数birthday2”。这是这样的结构,因为如果你有另一个函数(不在birthday2中)也称为happyBirthdayEmily(),python解释器基本上不知道使用哪一个。

答案 2 :(得分:2)

您需要使用全名:

birthday2.happyBirthdayEmily()

并包含() parethesis来调用该函数。

或者,您可以略有不同地导入它:

from birthday2 import happyBirthdayEmily

将函数导入本地名称空间。