2017-04-22 2 views
2

関数の結果をタプルに渡す方法は?私は、Python/Djangoの/セキレイプロジェクトに取り組んでいます、そしていくつかの点で私はこのようなクラスを持っている

class SuperClass(BaseClass): 

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

    def some_function(): 
     return 'Hola' 

OverviewSpeakersは、引数を期待しているクラスであり、私は合格してみたいです

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

some_function()

の結果に私は両方を試し

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

しかし、それぞれそれが自己またはスーパークラスが定義されていないことを叫びます。

関数の結果を渡すにはどうすればよいですか?

+0

をあなたはそれを使用する前に、関数を定義する必要があります。 'some_function'の定義を' body'の初期化の前に置いてください。 – DyZ

+0

@DYZそして、どのように関数を呼び出すのですか? –

+0

は 'self'で動作しませんでしたが、まだ 'self is not defined 'と表示されています。 –

答えて

1

これをチェックアウト:

class SuperClass(BaseClass): 

    def some_function(): 
     return 'Hola' 

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

定義されているクラスを参照することはできませんが、定義後にアトリビュートを追加することはできます。だから、これは動作するはずです:

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

SuperClass.body = StreamField([ 
    ('overview_speakers', OverviewSpeakers(SuperClass.some_function())), 
]) 
関連する問題