2015-10-29 6 views
0

Я пытаюсь сделать следующийВозвращает объект класса из функции

def func(): 
    var = some_class() 
    return var 

def fun2(): 
    func.some_method_of_some_class 

В Ruby я могу сделать это, делая что-то вроде:

def func 
    @var ||= someclass.new 
end 

def func2 
    func.somemethodofclass 
end 

Я получаю ошибку, когда я пытаюсь запустить немного питон следующее:

'function' object has no attribute 
+0

Вы должны фактически вызвать функцию для того, чтобы выполнить его и получить возвращенный экземпляр класса:. 'Func() some_method_of_some_class' –

+0

вы могли бы дать пример того, что лучше показывает, что вы пытаетесь достичь? Вероятно, есть альтернативные способы реализации этого. Также обратите внимание, что вы можете просто «вернуть some_class()» (или «вернуть SomeClass()», если вы следуете за [PEP-0008] (http://www.python.org/dev/peps/pep-0008 /)). – jonrsharpe

+0

Мои функции внутри моего модуля будут в основном использовать экземпляр класса db для выполнения запросов ... способ, которым я использую экземпляр класса db, - это определить функцию, которая возвращает объект класса, и использовать эту функцию для моих функций в модуле, делает это смысл? Я выбрал модуль, а не класс, который в классе db и т. Д. ... вы считаете, что это плохая практика? – Bodao

ответ

3

Python требует () при вызове функции. Это единственное, чего тебе не хватает.

def fun2(): 
    return func().some_method_of_some_class() 
Смежные вопросы