Как передать результат функции в кортеж?

Я работаю над проектом 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())),
])
Другие вопросы по тегам