clip_values Обрезание численных значений, чтобы убедиться, что они находятся в пределах нижней и верхней границы, является очень распространенной задачей.
Например, если вы имеете дело с цветами RGB, вы хотите, чтобы каждый канал был от 0 до 255, если вы имеете дело с продажами магазина, вам нужно, чтобы они были от 0 до 1, или если вы пишете классную игру, вы хотите, чтобы ваш персонаж оставался на экране.
Теперь, если вам нужно сделать все это вырезку, какая альтернатива вырезанию вы предпочитаете?
clip_values.clip clip предлагает читаемый человеческий синтаксис для ваших операций за отсечение:
from clip_values import clip
colour_channel = clip ( colour_channel ). between_ ( 0 ). and_ ( 255 )
discount = clip ( discount ). between_ ( 0 ). and_ ( 1 )
player_x_pos = clip ( player_x_pos ). between_ ( 0 ). and_ ( SCREEN_WIDTH ) Альтернатива clip - самая простая и легкая для чтения! Сравните его с двумя другими общими альтернативами:
Использование if: ... elif: ... block также легко читать, но занимает 4x больше строк кода:
if colour_channel < 0 :
colour_channel = 0
elif colour_channel > 255 :
colour_channel = 255
if discount < 0 :
discount = 0
elif discount > 1 :
discount = 1
if player_x_pos < 0 :
player_x_pos = 0
elif player_x_pos > SCREEN_WIDTH :
player_x_pos = SCREEN_WIDTH Цепочка min с max (или наоборот) короче, но это гораздо сложнее читать, и вам нужно потратить пару минут, размышляя о взаимодействии между двумя последовательными призывами к min / max :
colour_channel = min ( 255 , max ( 0 , colour_channel ))
discount = max ( 0 , min ( 1 , discount ))
player_x_pos = min ( SCREEN_WIDTH , max ( 0 , player_x_pos ))