Я хочу переопределить переменную, которая объявлена внутри класса Bank
, как вы можете видеть в коде ниже, у меня есть две инициализации, chosen_word
и word
, первая объявляется при вызове функции, вторая word
объявляется внутри функции я хочу переопределить это word
, но python возвращает сообщение об ошибке: TypeError: __init__() missing 1 required positional argument: 'word'
class Bank:
def __init__(self,chosen_word,word):
self.chosen_word = chosen_word
self.word = word
def choose_theme(self):
if chosen_word == "World":
word = random.choice(math)
splitten_word = split(word)
elements = ['_'.format(element) for element in splitten_word]
print(elements)
elif chosen_word == "Hello":
word = random.choice(tech)
splitten_word = split(word)
elements = ['_'.format(element) for element in splitten_word]
print(elements)
chosen_word = input("choose word:" + str(temebi))
levani = Bank(chosen_word)
levani.choose_theme()
Вам не хватает одного аргумента word
, который вы передали методу конструктора. Передайте его, сделав экземпляр как Bank(chosen_word,word)
, приняв word
в качестве входных данных.
Ваш конструктор требует два параметра chosen_word
и word
def __init__(self,chosen_word,word):
Здесь вы не предоставляете word
levani = Bank(chosen_word)
Это сообщение об ошибке. Вам нужно предоставить этот аргумент или изменить свой конструктор p.e.:
def __init__(self,chosen_word, word=None):
if word == None:
self.chosen_word = chosen_word
self.word = chosen_word
else:
self.chosen_word = chosen_word
self.word = word
Конструктор
Bank
ожидает два аргумента:chosen_word
иword
. Вы передаете один аргумент и получаете исключение.