【问题标题】:How to pass a function result to a tuple?如何将函数结果传递给元组?
【发布时间】:2017-04-22 02:25:03
【问题描述】:

我正在做一个 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 未定义。

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

【问题讨论】:

  • 使用前必须定义函数。将some_function的定义放在body的初始化之前。
  • @DYZ 我该如何调用函数?
  • 没有使用“自我”,仍然说self is not defined
  • 但它似乎可以直接调用它作为 some_function()
  • 就像您调用任何其他函数一样:some_function()

标签: python django wagtail wagtail-streamfield


【解决方案1】:

看看这个:

class SuperClass(BaseClass):

    def some_function():
        return 'Hola'

    body = StreamField([
        ('overview_speakers', OverviewSpeakers(some_function())),
    ])

【讨论】:

    【解决方案2】:

    你不能引用一个正在定义的类,但是你可以在它被定义之后给它添加属性。所以这应该有效:

    class SuperClass(BaseClass):
        def some_function():
            return 'Hola'
    
    SuperClass.body = StreamField([
        ('overview_speakers', OverviewSpeakers(SuperClass.some_function())),
    ])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多