2014-11-23 2 views
0

Я новичок в ООП 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), он показывает мне, если результат правильный или нет.

Я понимаю, это не-ООП пример: abs.py:

def split_text(text): - code -

test_abs.py:

def test(): 
    text = 'abcdefgh' 

Пожалуйста, помогите, спасибо за любые советы :)

+1

В Python необоснованные аксессоры недовольны. Это идиома Java - просто нет необходимости в такой функции, как 'get_rank'. Используйте 'card1.rank' и делайте это свойство, если вам когда-либо понадобится нетривиальная функция доступа. – user3426575

+0

[Стандартное соглашение Python] (http://stackoverflow.com/questions/5978557/association-between-naming-classes-and-naming-their-files-in-python-convention) рекомендует: поскольку ваш файл определяет * Card * class (и/или Deck, Hand и т. д.), назовите его * card.py *. Никогда не называйте его file.py, как говорит @HaiVu. – smci

+0

Я буду иметь в виду не использовать «file.py» больше. :) –

ответ

2

В вашем test_file.py:

from file import Card 

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

Кстати, не называйте ваш файл file.py: file является встроенной функцией.

+0

Да, это работает, спасибо :) Я буду иметь в виду не использовать «file.py» больше. –

Смежные вопросы