2

我正在研究一个 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())),
])

但它分别喊道selfSuperClass没有定义。

我能做些什么来传递函数的结果?

4

2 回答 2

1

看一下这个:

class SuperClass(BaseClass):

    def some_function():
        return 'Hola'

    body = StreamField([
        ('overview_speakers', OverviewSpeakers(some_function())),
    ])
于 2017-04-22T09:23:06.853 回答
0

您不能引用正在定义的类,但您可以在定义后为其添加属性。所以这应该工作:

class SuperClass(BaseClass):
    def some_function():
        return 'Hola'

SuperClass.body = StreamField([
    ('overview_speakers', OverviewSpeakers(SuperClass.some_function())),
])
于 2017-04-22T08:55:54.613 回答