私は一般的にPythonとOOPの新機能です。私は非常に簡単な質問をしているだけで私のために働くことはありません。 私はいくつかの機能を持つクラスを持っています。Python:クラス内の別の関数から変数を呼び出す
class Test:
def a(self):
var1 = 1
return var1
def b(self):
var2 = 2
return var2
def c(self):
var3 = a()
var4 = b()
なぜ、これはちょうど私が、私はいくつかの重要な基本的な知識が不足しています推測、それは()またはb() を知らないことを私に教えてくれます。 おかげ
私が参照のうえ午前実際に:
class Token:
# get new token
def post_new_token(self):
payload = "***"
headers = {
'authorization': "***",
'content-type': "application/x-www-form-urlencoded"
}
r = requests.post(settings.GET_NEW_TOKEN, data=payload, headers=headers)
r_json_obj = r.json()
# print ("I am from post_new_token:")
# print r_json_obj
return r_json_obj
# use the new token
def get_config(self):
# here I want to use the returned value:
access_token = self.post_new_token()
headers = {
'authorization': "Bearer " + str(access_token),
'cache-control': "max_age 3600"
}
r = requests.get(settings.GET_CONFIG, headers=headers)
# print ("I am from get_config:")
# print access_token
return r
だから、実際に罰金行くが、それは()self.post_new_tokenことを得るとき、それは再びすべてこの機能を実行するプリントを使用している場合。
私はこのようにそれを得ることが起こっていただきました!見にプリントを使用している場合があり、エラーが来ていないが、:
I am from post_new_token:
{***}
I am from get_config:
{***}
I am from post_new_token:
{***}
は、なぜそれが再び
I am from post_new_token:
{***}
を印刷していますか?
'b 'に' self.a() 'を使用する必要があります。理由を知るには、[classes](https://docs.python.org/3/tutorial/classes.html#classes)のチュートリアルのセクションを読むことをお勧めします。慎重にそれを読んで、あなたの誤解がどこにあるのかを見ておくことは、あなたの時間の価値があるでしょう。 – idjaw
私は実際のコードでそれを行いました。しかし、それは全体の機能をスローし、この機能に含まれるものを印刷します。しかし、私は返された内容を使用したいだけで、関数のすべてではありません。 – buchstabe
そして "def"を参照しないでください。それらは関数と呼ばれ、クラス内にあるときはここではメソッドと呼ばれます。 –