2016-11-26 33 views
5

我真的很新的Python和我進行了以下程序:使用我的Python程序

class AddressBook: 
    def __init__(self): 
     self.b = {} 

    def insert(self,name, phone): 
     self.b[name]=phone 
     print "I am confused" 

    def get(self,name): 
     return self.b[name] 

    def has_name(self,name): 
     return self.b.has_key(name) 

    def list(self): 
     for n,p in self.b.iteritems(): 
      print n,p 

    def delete(self, name): 
     del self.b[name] 

    def orderedList(self): 
     orderedkeys = self.b.keys() 
     orderedkeys.sort() 
     for n in orderedkeys: 
      print n, self.b[n] 

我現在要編譯測試它在終端,看它是否所有的作品。 我去的目錄,並編譯它與

python address.py 

現在我想的東西添加到列表,打印列表的內容,刪除它們(幾乎玩弄我的程序),但我不知道知道如何...

編譯後,我如何手動測試(玩耍)我的python程序?

在此先感謝。

+12

你不*編譯*你的python程序。要測試它,只需要執行'python -i address.py' – Kh40tiK

+2

這是一個很好的問題,對初學者尤其如此。它表現出堅實的努力和真誠的詢問。經驗豐富的Pythonistas傾向於忘記初學者是什麼樣子。事實證明,尋找直接答案不是微不足道的。感謝這篇文章。 – pylang

+0

謝謝@pylang –

回答

10

Python是interpreted language,而.py文件不需要直接編譯。有一個few ways to run Python code,但對於「玩耍」你可以簡單地激活Python解釋器並導入類。

在命令提示:

> python 

在Python:

>>> from address import AddressBook 
>>> a = Addressbook() 
>>> a.insert("Jenny", "867-5309") 
>>> a.get("Jenny") 
'867-5309' 
+3

這是一個很好的答案(有一個很好的鏈接)。如果你正在編寫非程序員使用的代碼,那麼你需要想辦法讓他們使用它(例如tkinter wrapper),但是爲了你自己的使用或者對於其他Python程序員來說,Python shell通常比使用它更方便。作爲命令行腳本。當我爲自己的應用寫東西時,我很少打擾除了直接從shell調用的函數/類之外的任何東西。 –

4

- Python腳本未編譯。至少不像其他語言一樣,Fortran和C.從this answer

Python有一個編譯器!你只是不會注意到它,因爲它會自動運行。但是,您可以告訴它在那裏:查看爲導入的模塊生成的.pyc(或.pyo,如果您打開了優化器)文件。

此外,它不編譯到本機的代碼。相反,它會編譯爲虛擬機使用的字節碼。虛擬機本身就是一個編譯好的程序。這與Java的工作方式非常相似;事實上,這種類似的事實是,Python變體(Jython)可以編譯爲Java虛擬機的字節碼!還有IronPython,編譯爲Microsoft的CLR(由.NET使用)。 (正常的Python字節碼編譯器有時被稱爲CPython的,從這些替代歧義吧。)

有兩種方法來測試它:在終端

  1. python -i address.py。這將運行腳本並進入python shell。您輸入python shell,然後輸入from address.py import AddressBook

在這兩種方式中,你可以用你的代碼玩弄 。