Передача аргументов экземпляру класса
Как можно осуществить передачу аргумента (-ов) экземпляру класса в python?
Резонанс вызвал этот код:
moment = Moment(app)
current_time = datetime.utcnow()
moment(current_time).fromNow(refresh=True)
А именно moment(current_time)
P.S. Куски кода вырваны из книги Мигеля Гринберга про фласк
Ответы (2 шт):
Автор решения: Shamus Rezol
→ Ссылка
Вы ищите магический метод __call__(self, *arguments, **kwargs), который в вашем случае возвращает некий объект с методом fromNow.
Автор решения: vadim vaduxa
→ Ссылка
как пример, может быть так
class Moment:
def __new__(cls, app):
return M
или
class Moment:
def __init__(self, app):
return
def __call__(self, current_time):
return M(current_time)
для
from datetime import datetime
class M:
def __init__(self, current_time):
self.fromNow = lambda refresh: print(current_time)
app = None
moment = Moment(app)
current_time = datetime.utcnow()
moment(current_time).fromNow(refresh=True) # 2020-08-05 11:33:24.631421