2014-11-23 78 views
0

我在OOP Python的初學者,我只是想知道這一點:如何類/模塊的定義傳遞到另一個文件

這是file.py

class Card(): 

    def __init__(self, rank, suit): 
     """Initialization method""" 
     self.rank = rank 
     self.suit = suit 

    def get_rank(self): 
     """Function get_rank returns a rank (value) of the card""" 
     return self.rank 

當我想創建並在該文件中傳遞對象的功能「get_rank」,我可以這樣做:

card1 = Card(10,"Diamond") 
card1.get_rank() 

但我怎麼可以創建和在另一個文件傳遞一個對象?還有另一個文件叫做test_file.py,它是一個測試文件(py.test)。所以file.py僅用於代碼,test_file.py代表傳遞給file.py的參數(變量和對象)。在test_file.py也是變量「expected_result」與正確的結果。然後當我使用「py.test」(bash)時,它顯示我,如果結果是正確的。

我明白這種非OOP例如: abs.py

def split_text(text): - code -

test_abs.py

def test(): 
    text = 'abcdefgh' 

請幫幫忙,感謝您的任何意見:)

+1

在Python中,不必要的訪問器是不滿意的。這是一個Java成語 - 沒有必要像'get_rank'這樣的函數。使用'card1.rank',並且如果你需要一個不重要的存取函數,則使它成爲一個屬性。 – user3426575 2014-11-23 02:17:18

+0

[Python標準約定](http://stackoverflow.com/questions/5978557/association-between-naming-classes-and-naming-their-files-in-python-convention)建議:由於您的文件定義了* Card *類(和/或甲板,手等),稱它* card.py *。永遠不要將它稱爲file.py,就像@HaiVu所說的那樣。 – smci 2014-11-23 03:00:56

+0

我會記住不再使用「file.py」。 :) – 2014-11-23 19:49:21

回答

2

在您的test_file.py

from file import Card 

... 
card1 = Card(10, "Diamond") 
# Do something with it 

順便說一句,不命名您的文件file.py:file是一個內置的功能。

+0

是的,這個作品,謝謝:)我會記住不再使用「file.py」。 – 2014-11-23 19:48:17

相關問題