Python Argparse ธงบูลีน

Python Argparse Thng Bu Lin



แฟล็กเป็นตัวแปรบูลีนที่แจ้งเตือนโปรแกรมเมอร์เมื่อมีสถานการณ์บางอย่างเกิดขึ้น ถ้าแฟล็กบูลีนแทนค่าจริง แสดงว่ามีเงื่อนไขบางอย่างอยู่ เมื่อธงบูลีนแทนค่าเท็จ แสดงว่าเงื่อนไขบางอย่างไม่เป็นจริง ในการตรวจสอบว่าการแยกวิเคราะห์เพรดิเคตเป็น 'True' หรือ 'False' แฟล็กบูลีน 'argparse' จะแยกวิเคราะห์อาร์กิวเมนต์ที่ผ่าน อาจใช้แพ็คเกจ Python มาตรฐานที่เรียกว่า 'argparse' เพื่อตีความอาร์กิวเมนต์บรรทัดคำสั่ง สิ่งนี้ควบคุมกิจกรรมได้ดีขึ้นและง่ายต่อการเขียนโค้ด ข้อความคำแนะนำและการใช้งานถูกสร้างขึ้นสำหรับผู้ใช้เมื่อเราให้ข้อโต้แย้งที่ผิดพลาด นอกจากนี้ยังแสดงข้อผิดพลาดเกี่ยวกับปัญหาของผู้ใช้ โมดูล 'argparse' ใช้งานง่าย ค่าเริ่มต้นของตัวเลือก store true คือ False ในขณะที่ค่าเริ่มต้นของ store false คือ True ในการใช้โมดูล 'argparse' เราต้องปฏิบัติตามขั้นตอนสำคัญ 3 ขั้นตอน: สร้าง parser ก่อน การให้ parser มีอาร์กิวเมนต์มากขึ้น และการแยกวิเคราะห์พารามิเตอร์

ไวยากรณ์:

ไวยากรณ์ที่จำเป็นสำหรับแฟล็กบูลีน “argparse” ของ Python มีดังต่อไปนี้:








ไวยากรณ์ต้องสร้างฟังก์ชันที่เก็บตัวแปรและไลบรารีที่มีการส่งผ่านอาร์กิวเมนต์ และเงื่อนไขถูกตั้งค่าตามความต้องการ ระบบตรวจสอบรายละเอียดแบบบูลีน 2 รายการสำหรับเงื่อนไขของเราว่าเป็น 'จริง' หรือ 'เท็จ'



ตัวอย่างที่ 1: การใช้ขอบเขตอันเงียบสงบของ Python “Argparse” Boolean Flag

แฟล็กบูลีนอย่างง่ายจะแยกวิเคราะห์อาร์กิวเมนต์ที่อาจเป็นอาร์กิวเมนต์เดียวหรือหลายอาร์กิวเมนต์ซึ่งมองไปที่สถานการณ์อาร์กิวเมนต์ ไม่ว่าเงื่อนไขที่ผ่านจะเป็น 'จริง' หรือ 'เท็จ'




ตอนนี้ให้เราหารือเกี่ยวกับข้อมูลโค้ดของเราต่อจากนี้





ในตอนต้นของโค้ด เรานำเข้าไลบรารีของ “argparse” ซึ่งเกี่ยวข้องกับการแยกวิเคราะห์อาร์กิวเมนต์ Python จากนั้น เราจะสร้างฟังก์ชัน “argparse_Boolean” ที่ผู้ใช้กำหนด และตำแหน่งที่จะจัดสรรให้กับไลบรารี จากนั้น เราจะส่งอาร์กิวเมนต์แรกของเราในฟังก์ชัน “argparse_Boolean” ซึ่งก็คือ “รถยนต์” โดยใช้ฟังก์ชัน “add_argument()” อาร์กิวเมนต์ที่สองผ่านไปเพียงแค่กำหนด 'รายละเอียด' ซึ่งการดำเนินการที่จะดำเนินการที่เราให้ไว้จะเก็บรายละเอียด 'จริง' ตอนนี้ เราสร้างฟังก์ชันใหม่ของ “Boolean_flag” ที่ใช้เพื่อเรียกใช้ไลบรารีที่กำหนดไว้ล่วงหน้าเพื่อแยกวิเคราะห์อาร์กิวเมนต์ สุดท้าย เราใช้ฟังก์ชัน “print()” สำหรับทั้งอาร์กิวเมนต์ที่เป็น “รถยนต์” และ “รายละเอียด”


จากข้อมูลโค้ดก่อนหน้า เราได้รับเอาต์พุตนี้โดยที่ไม่ได้รับอาร์กิวเมนต์ใดๆ ดังนั้นจึงแสดงเป็น 'ไม่มี' อาร์กิวเมนต์ที่สองไม่พบหรือไม่ตรงกัน ดังนั้นจึงให้รายละเอียดเป็น 'เท็จ'



ตัวอย่างที่ 2: การใช้การแยกวิเคราะห์อาร์กิวเมนต์ที่เกิดจาก Python เป็นค่าบูลีน

ตัวอย่างนี้คล้ายกับตัวอย่างก่อนหน้า ที่นี่ เราจะหารือเกี่ยวกับการดำเนินการค่าบูลีนสำหรับอาร์กิวเมนต์ที่กำหนดโดยผู้ใช้ หากเราต้องการเลือกอาร์กิวเมนต์สำหรับ Boolean verbose action เราสามารถใช้วิธีนี้ได้


ในตัวอย่างโค้ดนี้ ไลบรารียังคงเป็น 'argparse' แบบเดียวกับที่ใช้ในอันก่อนหน้า ฟังก์ชันที่สร้างขึ้นตอนนี้มีชื่อว่า “Boolean_parser” อาร์กิวเมนต์ที่เราระบุเป็นตัวแปร 2 ตัว ได้แก่ “First_Variable” และ “Second_Variable” โดยที่การดำเนินการสำหรับอาร์กิวเมนต์แรกจะถูกจัดเก็บเป็น 'เท็จ' และอาร์กิวเมนต์ที่สองจะถูกจัดเก็บเป็น 'จริง' สุดท้าย เราเรียกฟังก์ชัน “Boolean_parser” โดยใช้ฟังก์ชัน “parser_args()” และเก็บไว้ใน “Flag_Argument” สำหรับการแสดงภาพ เราใช้ฟังก์ชัน “print()” และกำหนดใน “Flag_Argument”


นี่คือสแนปชอตเอาต์พุตของตัวอย่างโค้ดก่อนหน้าซึ่งอธิบายค่าบูลีนอย่างละเอียดเป็น 'True' สำหรับ 'First_Variable' และ 'False' สำหรับ 'Second_Variable'

ตัวอย่างที่ 3: การใช้ค่าสถานะบูลีน “Argparse” โดยการใช้คำสั่งแบบมีเงื่อนไข

ตามชื่อที่แสดง คำสั่งเงื่อนไขจะใช้ในโปรแกรมของคุณเพื่อจัดการเงื่อนไข แนวทางปฏิบัติเหล่านี้เป็นแนวทางของโปรแกรมเมื่อทำการตัดสินตามสถานการณ์ที่พบ คำสั่งเงื่อนไขหลักใน Python คือคำสั่ง 'ถ้า' 'if-else' และ 'switch' ที่นี่เราจะผ่านคำสั่งเงื่อนไข 'if-else'


ห้องสมุดยังคงเป็น 'argparse' เช่นเดียวกับที่เราจัดการกับการแยกวิเคราะห์อาร์กิวเมนต์ ฟังก์ชันที่เราสร้างขึ้นที่นี่มีชื่อว่า “parser_flag” อาร์กิวเมนต์แรกที่เรากำหนดคือ “ดำเนินการ-การกระทำ” และค่าเริ่มต้นที่กำหนดที่นี่คือ “เท็จ” โดยที่ “การกระทำ” เก็บ “จริง” หลังจากผ่านอาร์กิวเมนต์แล้ว เราสร้างฟังก์ชันใหม่ชื่อ “arguments_flag” และเรียกมันด้วยฟังก์ชันที่ผู้ใช้กำหนดเองก่อนหน้านี้ “parser_flag” พร้อมกับอาร์กิวเมนต์ ที่นี่เราใช้คำสั่งเงื่อนไขของ 'if-else' 'if-condition' ของเราจะจัดเก็บว่าอาร์กิวเมนต์ที่ส่งผ่าน   เป็นจริง ต่อจากฟังก์ชัน 'print()' และคำสั่งพิมพ์ 'ดำเนินการของคุณ' ใน 'เงื่อนไขอื่น' ถ้าการแยกวิเคราะห์อาร์กิวเมนต์แรกไม่ใช่ 'จริง' ให้ดำเนินการ 'คำสั่งอื่น' ของ 'เท็จ' ใน 'ค่าเริ่มต้น' ประการสุดท้าย เราใช้ฟังก์ชัน “print()” สองครั้งสำหรับคำสั่งการพิมพ์ซึ่งแสดงการดำเนินการโดยดำเนินการตามอาร์กิวเมนต์


สแนปชอตเอาต์พุตกำหนดว่าอาร์กิวเมนต์ที่ส่งผ่านจะเรียกใช้ 'คำสั่งอื่น' ด้วยรายละเอียด 'เท็จ' พร้อมกับคำสั่งการพิมพ์ที่เราให้ไว้ในรหัส

ตัวอย่างที่ 4: การใช้ Python “Argparse” Boolean Flag โดยการใช้งานโมดูล “Distutils”

การติดตั้ง Python สามารถคอมไพล์และติดตั้งไลบรารีใหม่โดยใช้โมดูล 'distutils' โมดูลใหม่อาจเติบโตเร็วกว่าที่เขียนด้วยภาษา C, โมดูล Python ธรรมดา หรือชุดเครื่องมือและฟีเจอร์ที่มีโมดูลที่เขียนด้วยภาษา Python


หลังจากนำเข้าไลบรารี 'argparse' เราจะใช้โมดูล 'distutils.util' โดยนำเข้าไลบรารีเพิ่มเติมของ 'strtobool' จากนั้น เราสร้าง 'python_argparse r' และเชื่อมโยงกับไลบรารี หลังจากนั้น เราเพิ่มอาร์กิวเมนต์ใน “python_argparse r” ของ “Boolean” ประเภทที่ระบุคือ 'แลมบ์ดา' และจัดเก็บไว้ในตัวแปร 'b' ซึ่งกำหนดด้วยไลบรารี 'strtobool' ค่าบูลีนที่นี่สำหรับเงื่อนไข 'default' ถูกตั้งค่าเป็น 'True' และ 'const' ถูกตั้งค่าเป็น 'False' หลังจากแยกวิเคราะห์ เราจะจัดเก็บไว้ใน “boolean_arguments” หลังจากสร้าง จากนั้น เราเรียก 'boolean_arguments' ในฟังก์ชัน 'print()'


เมื่ออ่านอาร์กิวเมนต์แล้ว ผลลัพธ์จะแสดงเป็น 'True' เนื่องจากเงื่อนไขถูกนำไปใช้โดยค่าเริ่มต้น

ตัวอย่างที่ 5: การใช้ Python “Argparse” Boolean Flag โดยการใช้งานโมดูล “Distutils” พร้อมคำสั่งแบบมีเงื่อนไข

ข้อความแสดงเงื่อนไขสามารถดำเนินการร่วมกับโมดูล distutils เพื่อใช้ปรากฏการณ์ของการแยกวิเคราะห์อาร์กิวเมนต์ในแฟล็กบูลีน


มาดูตัวอย่างโค้ดเพื่อค้นหาการใช้คำสั่งเงื่อนไขและโมดูล distutils ไปพร้อมกัน เพื่อจุดประสงค์นี้ เรานำเข้าไลบรารี 'argparse'  และใช้โมดูล 'distutils.util' จากนั้น เรานำเข้าไลบรารี 'strtobool' ในทำนองเดียวกันซึ่งใช้ในตัวอย่างก่อนหน้านี้ ฟังก์ชันที่เราสร้างมีชื่อว่า “bool_parser” เพื่อสร้างการแยกวิเคราะห์อาร์กิวเมนต์ เราเพิ่มอาร์กิวเมนต์ 'kind' และ 'type' ที่ตั้งค่าเป็น 'str', 'nargs' เป็น '?', 'const' เป็น 'False' และ 'default' เป็น 'True' ตอนนี้ เราสร้างฟังก์ชันใหม่ของ “bool_arguments” ซึ่งเรากำหนดฟังก์ชันก่อนหน้าพร้อมกับอาร์กิวเมนต์ที่เราแยกวิเคราะห์ ที่นี่ เราใช้คำสั่งเงื่อนไขโดยที่เงื่อนไข 'if' กำหนดว่าหากอาร์กิวเมนต์ที่ส่งผ่านอยู่ แสดง 'จริง' พร้อมกับข้อความพิมพ์ 'ธงบูลีนของคุณคือ' จากนั้นจะพิมพ์รายละเอียดของอาร์กิวเมนต์ 'kind' ที่เรากำหนดไว้ใน 'print()' มิฉะนั้น จะเป็น 'เท็จ' โดยค่าเริ่มต้นเป็นนิพจน์บูลีน


ในภาพรวมผลลัพธ์ เราจะเห็นว่าคำสั่ง if เป็นจริง ดังนั้นมันจึงแสดงเป็น “True” พร้อมกับคำสั่งพิมพ์ของเรา

บทสรุป

ในบทความของเรา เราได้กล่าวถึงแนวคิดหลักของการแยกวิเคราะห์อาร์กิวเมนต์ในแฟล็กบูลีน เพื่อจุดประสงค์นี้ เราใช้ตัวอย่างห้าตัวอย่างเพื่ออธิบายหัวข้อนี้อย่างลึกซึ้งและเข้าใจง่าย เราได้กล่าวถึงการแยกวิเคราะห์อาร์กิวเมนต์โดยใช้คำสั่งเงื่อนไขของโมดูล “if” หรือ “else”, “distutils” และการใช้คำสั่งเงื่อนไขพร้อมกับโมดูล “distutil” ด้วยวิธีการเหล่านี้ เราได้ส่งข้อโต้แย้งไปพร้อมกับแนวคิดธงบูลีนของ 'จริง' หรือ 'เท็จ' หลังจากแยกวิเคราะห์อาร์กิวเมนต์แล้ว จะแสดงรายละเอียดตามข้อมูลตัวแทนของเรา