2015-02-12 3 views
0

Я работаю над этой программой, где я пытаюсь создать методы получения и публикации. Метод, который я использую, принадлежит внешнему модулю, и он принимает значения записи и помещает их в базу данных.Передача значений конструктора в метод?

Я полагаю, что мне нужно найти способ передать значения моего конструктора. До сих пор это примерно так:

class MyClass(object): 
    def __init__(self, a=0, b=0, c="", ... , toggle_on=False): 
     # constructors defined here 
     self.a = a 
     self.b = b 
     # ... 
     self.toggle_on = toggle_on 

    # ... some other methods in between 

    def insert_stuff(self, **kwargs): 
     sess.add(MyTableClass(**kwargs)) 

Есть ли способ передать значения конструктора таким образом?

+1

Не могли бы вы просветить свой вопрос? – felipsmartins

+3

@ Jan-PhilipGehrcke Что? camelCase - это не то, что рекомендует PEP8 для имен классов. Это будет TitleCase, который OP получил правильно. – Eithos

+0

@ Eithos: Я думаю, что это не слишком хорошо определено :-) Цитата из PEP8: * «Капитализированные слова (или CapWords или CamelCase) *. Я назвал camelCase здесь, на самом деле, называется *« mixedCase »* в PEP8. удалил мой комментарий, тем не менее, потому что, возможно, я должен был критиковать его использование mixedCase. –

ответ

0

Почему бы не создать экземпляр MyTableClass перед вызовом метода insert_stuff()? Выглядит намного чище для меня:

class MyClass(object): 
    def __init__(self, ...): 
     self._session = ... 

    def insert_stuff(self, table): 
     self._session.add(table) 


c = MyClass(...) 
t = MyTableClass(...) 
c.insert_stuff(t) 
Смежные вопросы