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: ... บล็อกนั้นอ่านง่าย แต่ใช้รหัสมากขึ้น 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 ))