2016-04-24 17 views
1

口実を参照してくださいが、私は自分のためにすべてを明確にしたいです。クラス外の関数からクラス変数にアクセスする際に問題があります。以下のコードでは、私はtext, text2を必要としています。私はタプルとして変数を取得しますが、私はそれらを別々に必要とします。 text = var1text2 = var2のような定義された変数を取得するためにコードを更新するには?前もって感謝します!Pythonクラスの外の関数から定義された変数に初心者の質問には

from django.shortcuts import render 

class Someclass(): 
    def method_1(self): 
     self.var2 = 'var2' 
     self.var1 = 'var1' 
     return self.var1 ,self.var2 

def func(request): 
    cls = Someclass() 
    text2 = cls.method_1() 
    text = cls.method_1() 
    content = { 
     'text': text, 
     'text2': text2, 
    } 
    return render(request, "web/page.html", content) 
+0

灰色の背景のテキストを指摘する方法をおねがいしますか? – Andriy

答えて

2

使用tuple unpacking - あなたは、いくつかの結果を返すと、FUNCからいくつかの結果を受け取ることができます

text, text2 = cls.method_1() 

また、あなたはもっと自分の変数テキストとテキスト2に名前を付けていません。またclsは、クラスに使用する一般的な単語です。clsはインスタンスですが、それはちょっと変わっていません:)

+0

ありがとう!しかし、それをより「ピジョンソニック」にする方法は? :) – Andriy

+0

は名前が何かを意味してください。同様に、あなたは 'クラスのパーサを()している場合、' 'その後、パーサ=パーサ()'や 'facebook_parser = FacebookParser(引数)'。 'text'と' text2'も同じです。または、少なくとも 'obj'と名前をつけてください - clsではなく:) – aershov

3

タプルを返すので、1回の呼び出しで値を変数に直接割り当てる必要があります。

このような何か:

text, text2 = cls.method_1() 
1

の代わりに: テキスト2 = cls.method_1() テキスト= cls.method_1()

行います テキスト2、テキスト= cls.method_1()

関連する問題