Как передать результат функции в кортеж?
Я работаю над проектом Python/Django/Wagtail, и в какой-то момент у меня есть такой класс:
class SuperClass(BaseClass):
body = StreamField([
('overview_speakers', OverviewSpeakers()),
])
def some_function():
return 'Hola'
OverviewSpeakers - это класс, который ожидает аргумент, и я хочу попытаться передать результаты some_function()
Я попробовал оба:
body = StreamField([
('overview_speakers', OverviewSpeakers(self.some_function())),
])
а также
body = StreamField([
('overview_speakers', OverviewSpeakers(SuperClass.some_function())),
])
Но соответственно он кричит, что self или SuperClass не определены.
Что я могу сделать, чтобы передать результаты функции?
2 ответа
Решение
Проверь это:
class SuperClass(BaseClass):
def some_function():
return 'Hola'
body = StreamField([
('overview_speakers', OverviewSpeakers(some_function())),
])
Вы не можете обратиться к определенному классу, но вы можете добавить атрибуты к нему после того, как он определен. Так что это должно работать:
class SuperClass(BaseClass):
def some_function():
return 'Hola'
SuperClass.body = StreamField([
('overview_speakers', OverviewSpeakers(SuperClass.some_function())),
])