2012-11-03 25 views
0

我跟隨this guide,我無法獲得基本功能。基本功能不工作 - >'姓名'happyBirthdayEmily'未定義'

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

您在happyBirthdayEmily和模塊參考之後丟失括號。像這樣做:

>>>birthday2.happyBirthdayEmily() 

的括號將其識別爲一個函數調用,而birthday2.之初只是說,「從birthday2模塊使用功能happyBirthdayEmily()」。這是這樣構造的,因爲如果你有另一個函數(不在birthday2),也叫happyBirthdayEmily(),python解釋器基本上不知道使用哪一個函數。

+0

每個人都給出了很好的答案,但我標記爲正確的,因爲它給了我最多的背景。感謝大家! –

4

你應該做的:

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

或:

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

或:

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

瞭解更多關於模塊here

2

您需要使用的全名:

birthday2.happyBirthdayEmily() 

幷包括調用函數的() parethesis。

或者,你可以稍微不同導入:

from birthday2 import happyBirthdayEmily 

導入功能到局部名字空間。