(getattr(obj, fields[0]) == getattr(obj_ok, fields[0])) and (
getattr(obj, fields[1]) == getattr(obj_ok, fields[1])) and (
getattr(obj, fields[2]) == getattr(obj_ok, fields[2])) and (
getattr(obj, fields[3]) == getattr(obj_ok, fields[3])) and (
getattr(obj, fields[4]) == getattr(obj_ok, fields[4])) and (
getattr(obj, fields[5]) == getattr(obj_ok, fields[5])) and (
getattr(obj, fields[6]) == getattr(obj_ok, fields[6])):
all(getattr(obj, x) == getattr(obj_ok, x) for x in fields)
Я не понял от кого наследуется context в get_context_data
и зачем вызывается эта функция с передачей словаря,
Так же в документации это было описано с классом DetailView, но с классом ListView это так же работает, тогда какое отличие этих классов
Мне очень интересно в каких направлениях копать, чтобы понять как оно все утроено, работает и что мне читать и изучать, чтобы разобраться и написать свой "фреймворк".
ну и для начала подскажите с чего начать.
a = [10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]
b = [y[1] for y in filter(lambda x: x[0]%4 == 0, enumerate(a, 1))]
print(b)
# [13, 17, 21, 25]
b = a[3::4]
print(b)
# [13, 17, 21, 25]
def game_result(result_frame):
if 'X' in result_frame:
return 20
elif '/' in result_frame:
return 15
elif '-' in result_frame:
return 0
return int(result_frame[0]) + int(result_frame[1])
def get_score(analized_res):
total, count, frames = 0, 0, 0
for frame, result_frame in (analized_res.items()):
frames += 1
count += 1
check_errors(result_frame)
total += game_result(result_frame)
print(f'Фрейм {count} результат {result_frame}')
print(f'кол-во очкoв {total}')
if frames != 10:
raise Exception('Неправильное количество фреймов!')
return total
...