2014-11-23 52 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

相关问题