(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
...
import matplotlib.pyplot as plt
%matplotlib inline
import cv2
from PIL import Image, ImageDraw
import numpy
def get_colors(infile, numcolors=10, swatchsize=20, resize=150):
plt.rcParams['figure.figsize'] = [15, 3]
f,ax = plt.subplots(1,2)
image = Image.open(infile)
orig = image.copy()
image = image.resize((resize, resize))
result = image.convert('P', palette=Image.ADAPTIVE, colors=numcolors)
result.putalpha(0)
colors = result.getcolors(resize*resize)
pal = Image.new('RGB', (swatchsize*numcolors, swatchsize))
draw = ImageDraw.Draw(pal)
posx = 0
for count, col in sorted(colors, key=lambda x: x[0], reverse=True):
draw.rectangle([posx, 0, posx+swatchsize, swatchsize], fill=col)
posx = posx + swatchsize
img = numpy.asarray(pal)
del draw
print('File: ', infile)
for im in sorted(colors, key=lambda x: x[0], reverse=True):
if im[1].index(max(im[1])) == 0:
print(im, 'red')
elif im[1].index(max(im[1])) == 1:
print(im, 'green')
elif im[1].index(max(im[1])) == 2:
print(im, 'blue')
ax[0].imshow(orig)
ax[1].imshow(img)
if __name__ == '__main__':
get_colors('D:\\00\\sample01.jpg', numcolors=1)
get_colors('D:\\00\\sample02.jpg', numcolors=1)
get_colors('D:\\00\\sample03.jpg', numcolors=1)