Как использовать переменные из одной класса в другом?
Хочу использовать переменные другой функции внутри класса, но их почему-то не видит функция.
Как можно это сделать?
Не видит во второй функции параметры question_1 и dificulti.
class AskQuestion(Question):
def ask(self, question_1):
question_1 = random.choice(list(question_1))
question_q = question_1["q"]
dificulti = question_1["d"]
return self.build_question(question_q, dificulti)
class AnswerQuestion(AskQuestion):
def answer(self, question_2):
ans = AskQuestion()
ans.ask(question_2)
answer_player = input()
question_r = question_1["a"]
self.is_correct(answer_player, question_r )
self.get_point(dificulti)
print(dificulti)
Ответы (2 шт):
Автор решения: vewobi
→ Ссылка
Почему бы не сделать один класс вместо двоих?
class AskQuestion():
def ask(self, question_1):
question_1 = random.choice(list(question_1))
question_q = question_1["q"]
dificulti = question_1["d"]
return self.build_question(question_q, dificulti)
def answer(self, question_2):
ans = AskQuestion()
ans.ask(question_2)
answer_player = input()
question_r = question_1["a"]
self.is_correct(answer_player, question_r )
self.get_point(dificulti)
print(dificulti)
Вопрос не совсем понятен.
Автор решения: S. Nick
→ Ссылка
Яна, хотя вы не ответили ни на один мой комментарий и я совсем не понимаю что вы хотите сделать.
Но учитывая что это ваш первый вопрос, попробуйте так:
import random
class AskQuestion(Question):
dificulti = None # +++
question_1 = None # +++
def ask(self, question_1):
# ----> vvvv <------------------------------------------------------
self.question_1 = random.choice(list(question_1))
# ??? # ??? или что
question_q = question_1["q"]
# ----> vvvv <------------------------------------------------------
self.dificulti = self.question_1["d"]
# -------------------------------------------> vvvv <---------------
return self.build_question(question_q, self.dificulti)
class AnswerQuestion(): # ? AskQuestion
def answer(self, question_2):
# ----> vvvv <------------------------------------------------------
self.ans = AskQuestion()
# ----> vvvv <------------------------------------------------------
self.ans.ask(question_2)
answer_player = input()
# -----------------> vvvvvvvvv <-------------
question_r = self.ans.question_1["a"]
self.is_correct(answer_player, question_r )
# -------------------> vvvvvvvv <-----------------------------------
self.get_point(self.ans.dificulti)
# ----------> vvvvvvvvv <-------------------------------------------
print(self.ans.dificulti)