clip_values Das Ausschneiden numerischer Werte, um sicherzustellen, dass sie sich in einer unteren und oberen Grenze befinden, ist eine sehr häufige Aufgabe.
Wenn Sie beispielsweise mit RGB -Farben zu tun haben, möchten Sie, dass jeder Kanal zwischen 0 und 255 liegt. Wenn Sie sich mit Shop -Verkäufen befassen, müssen Sie sie zwischen 0 und 1 und wenn Sie ein cooles Spiel schreiben, möchten Sie, dass Ihr Charakter auf dem Bildschirm bleibt.
Wenn Sie jetzt all diesen Ausschnitt vornehmen müssen, welche Alternative zum Ausschneiden bevorzugen Sie?
clip_values.clip clip bietet Ihren Clipping-Operationen eine menschliche lesbare Syntax:
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 ) Die clip -Alternative ist die einfachste und am einfachsten zu lesen! Vergleichen Sie es mit zwei weiteren allgemeinen Alternativen:
Verwenden eines if: ... elif: ... Block ist auch leicht zu lesen, nimmt aber 4x weitere Codezeilen auf:
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 Das Ketten von min mit max (oder umgekehrt) ist kürzer, aber dies ist viel schwieriger zu lesen, und Sie müssen ein paar Minuten damit verbringen, die Interaktion zwischen den beiden aufeinanderfolgenden Aufrufen nach min / max herauszufinden:
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 ))