ก่อนอื่นฉันจะเสนอชื่อกรอบการบันทึกของ python เป็นครั้งที่สอง อย่างไรก็ตามโปรดใช้ความระมัดระวังเล็กน้อยเกี่ยวกับวิธีการใช้งาน โดยเฉพาะ: ปล่อยให้กรอบการบันทึกขยายตัวแปรของคุณอย่าทำด้วยตัวเอง ตัวอย่างเช่นแทนที่จะเป็น:
logging.debug("datastructure: %r" % complex_dict_structure)
ให้แน่ใจว่าคุณทำ:
logging.debug("datastructure: %r", complex_dict_structure)
เนื่องจากแม้ว่าจะมีลักษณะคล้ายกัน แต่เวอร์ชันแรกจะมีค่าใช้จ่ายในการ repr () แม้ว่าจะปิดใช้งานก็ตาม รุ่นที่สองหลีกเลี่ยงสิ่งนี้ ในทำนองเดียวกันถ้าคุณม้วนของคุณเองฉันขอแนะนำสิ่งต่อไปนี้:
def debug_stdout(sfunc):
print(sfunc())
debug = debug_stdout
โทรผ่าน:
debug(lambda: "datastructure: %r" % complex_dict_structure)
ซึ่งจะหลีกเลี่ยงค่าใช้จ่ายอีกครั้งหากคุณปิดใช้งานโดยทำ:
def debug_noop(*args, **kwargs):
pass
debug = debug_noop
ค่าใช้จ่ายในการคำนวณสตริงเหล่านั้นอาจไม่สำคัญเว้นแต่ว่า 1) มีราคาแพงในการคำนวณหรือ 2) คำสั่งดีบักอยู่ตรงกลางของคำสั่ง n ^ 3 loop หรืออะไรบางอย่าง ไม่ใช่ว่าฉันจะรู้อะไรเกี่ยวกับเรื่องนั้น