Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

การตรวจจับการเยื้องที่คลุมเครือใน python


การเยื้องเป็นคุณลักษณะที่สำคัญของไวยากรณ์ Python โค้ดบล็อกในฟังก์ชัน คลาส หรือลูปจะต้องเป็นไปตามระดับการเยื้องเดียวกันสำหรับคำสั่งในนั้น โมดูล tabnanny ในไลบรารีมาตรฐานของ Python สามารถตรวจพบการละเมิดในข้อกำหนดนี้

โมดูลนี้มีวัตถุประสงค์หลักเพื่อใช้ในโหมดบรรทัดคำสั่งด้วยสวิตช์ –m อย่างไรก็ตาม สามารถนำเข้าในเซสชันล่ามได้เช่นกัน

การใช้บรรทัดคำสั่ง

python –m tabnanny –q example.py

สำหรับเอาต์พุตแบบละเอียดให้ใช้สวิตช์ –v

python –m tabnanny –v example.py

ฟังก์ชันต่อไปนี้ถูกกำหนดไว้ในโมดูล tabnanny สำหรับตรวจสอบการเยื้องโดยทางโปรแกรม

check()

ฟังก์ชันนี้จะตรวจสอบบรรทัดที่เยื้องไม่ชัดเจนในไฟล์ที่กำหนด คุณยังสามารถส่งไดเร็กทอรีเป็นพารามิเตอร์ได้อีกด้วย ไฟล์ทั้งหมดในนั้นจะถูกตรวจสอบซ้ำๆ

ตัวอย่าง

import tabnanny
tabnanny.check('example.py')

tabnanny.verbose − แฟล็กนี้ระบุว่าจะพิมพ์ข้อความแบบละเอียดหรือไม่ สิ่งนี้จะเพิ่มขึ้นโดยตัวเลือก -v หากเรียกว่าเป็นสคริปต์

tabnanny.filename_only − แฟล็กนี้ระบุว่าจะพิมพ์เฉพาะชื่อไฟล์ของไฟล์ที่มีปัญหาที่เกี่ยวข้องกับช่องว่างหรือไม่ สิ่งนี้ถูกตั้งค่าเป็นจริงโดยตัวเลือก -q หากเรียกว่าเป็นสคริปต์

process_tokens() -

ฟังก์ชันนี้ใช้โดย check() เพื่อประมวลผลโทเค็นที่สร้างโดยโมดูล tokenize ฟังก์ชันนี้ทำให้เกิดข้อยกเว้น NannyNag หากตรวจพบการเยื้องที่คลุมเครือ มันถูกจับและจัดการใน check()