Сначала наберите код, чтобы вы поняли, о чем я говорю:
goal = False
count = 0
def function():
if goal==True:
return True
else:
return False
def func():
if dict1["A"]==True:
return True
else:
return False
dict1 = {"A":function()}
dict2 = {"B":func()}
list = [dict1,dict2]
goal = True
for i in list:
count = 0
for x,y in i.items():
if y==True:
count+=1
if count==len(i):
print("Works")
else:
print(i)
>>>{"A":False}
>>>{"B":False}
Это не мой текущий код, а актуальная проблема. Это где я спрашиваю, как я могу обновить значения в dicts. Должен ли я сделать что-то вроде:
for i in list:
for x,y in i.items():
y()
Мой текущий проект используется в Ren'Py (.rpy), но так как я использую блоки python, код работает точно так же, как обычный Python.
Внутри класса с именем Event мои элементы выглядят так:
def ev_check(self):
if self.done==False:
self.count = 0
for x,y in self.conditions.items():
if y==True:
self.count+=1
else:
pass
if self.count==len(self.conditions):
self.valid = True
else:
self.valid = False
else:
self.valid = False
def own_office():
if Promotion_1.done==True: #Once the event is played, .done gets True
return True
else:
return False
def times_worked(x):
if You.worked < x:
return False
else:
return True
Promotion_1.conditions = {"Work 2 times" : times_worked(2)}
Meet_Tigerr.conditions = {"Own office" : own_office()}
#External event that adds a value to the data named You.worked to get it to 2
print(Promotion_1.conditions["Work 2 times"])
>>> False
Ожидаемый результат: верно
Результат: Ложь