2013-12-16 2 views
0

Я не уверен, что это правильный подход к этому, но у меня есть класс с некоторыми функциями, использующими тот же класс в другом файле. Вопрос в том, нормально ли позвонить классу один раз под init? какие сложности могут возникнуть, если я делаю это с классом, который использует запросы/вставки или http-запросы ?. Или я должен избегать этого?Правильно вызывать класс/функцию внутри __init__?

пыльник, пример того, что я имею в виду:

путь я делаю:

classfileA.py

class StackExample: 

    def __init__(self, input_a, input_b) 
     self.var_a = input_a 
     self.var_b = input_b 

    def say_hello() 
     print "My bacon is : " + self.var_a 
     print "But still boss as : " + self.var_b 

-

file2.py

import classfileA 

class Action: 

    def __init__(self, input_a, input_b) 
     self.var_a = input_a 
     self.var_b = input_b  

    def test_a() 
     start = classfileA.StackExample(self.var_a,self.var_b) 
     start() 

    def test_b() 
     start = classfileA.StackExample(self.var_a,self.var_b) 
     start() 

    def test_c() 
     start = classfileA.StackExample(self.var_a,self.var_b) 
     start() 

if __name__ == '__main__': 
    run = action('my love','blind') 
    run_cm.main() 

Что я думаю, что я могу сделать:

classfileA.py:

class StackExample: 

    def __init__(self, input_a, input_b) 
     self.var_a = input_a 
     self.var_b = input_b 

    def say_hello() 
     print "My bacon is : " + self.var_a 
     print "But still boss as : " + self.var_b 

-

file2.py

import classfileA 

class Action: 

    def __init__(self, input_a, input_b) 
     self.var_a = input_a 
     self.var_b = input_b 
     # call inside __init__ 
     self.start = classFileA.StackExample(self.var_a,self.var_b) 


    def test_a()   
     self.start() 

    def test_b() 
     self.start() 

    def test_c() 
     self.start() 


if __name__ == '__main__': 
    run = Action('my love','blind') 
    run.test_a() 

Спасибо заранее.

+1

Это сработает, и я предлагаю вам сделать это так, как вы просите. Единственное, что нужно отметить, это имя 'someClass', которое никогда не определено. 'classfileA.StackExample', однако, будет работать. – Torxed

+0

@Torxed Вопрос отредактирован. Спасибо, что указали это. –

ответ

1

Да, это прекрасно в смысле, что ничего не произойдет в отношении объекта someClass.StackExample и вызывающего объекта.

+0

Вопрос отредактирован. Благодарим за указание этого. –

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