मेरे पास एक मॉड्यूल है जो कस्टम सजावट के साथ कुछ महत्वपूर्ण कार्यों को सजाने वाला है।सजावटी कार्यों में कदम उठाने का कोई तरीका है, सजावटी कोड छोड़ना
पीडीबी के साथ इन कार्यों को डीबग करना प्रायः दर्द का थोड़ा सा होता है, क्योंकि हर बार जब मैं सजाए गए फ़ंक्शन में जाता हूं तो मुझे पहले सजावटी कोड के माध्यम से कदम उठाना पड़ता है।
मैं बस उस फ़ंक्शन के भीतर ब्रेक करने के लिए डीबगर सेट कर सकता हूं, लेकिन महत्वपूर्ण कार्यों के रूप में उन्हें कई स्थानों से कई बार बुलाया जाता है, इसलिए मैं आमतौर पर फ़ंक्शन के बाहर डीबगिंग शुरू करना पसंद करता हूं।
मैं कोड के साथ वर्णन करने के लिए कोशिश की, लेकिन मैं नहीं जानता कि यह है कि अगर मदद करता है:
def i_dont_care_about_this(fn):
@functiontools.wraps(fn)
def wrapper(*args, **kwargs):
return fn(*args, **kwargs)
return wrapper
@i_dont_care_about_this
def i_only_care_about_this():
# no use to set pdb here
def i_am_here():
import pdb; pdb.set_trace()
i_only_care_about_this()
तो, वहाँ एक रास्ता मुझे i_dont_care_about_this
माध्यम से जा रहा बिना i_am_here
से i_only_care_about_this
में कदम करने के लिए है?
अनिवार्य रूप से मैं जब किसी दिए गए सजाया समारोह में करने के लिए (रों) का चरण रों का उपयोग करके सभी डेकोरेटर कोड छोड़ना चाहते।
कैसे PDB पता चला है कि एक समारोह से सजाया गया है माना जाता है और कम से जो मूल बिंदु entert है इंगित करता है घ? ऐसा कुछ करने के लिए आपको अपने सजावटी और पीडीबी दोनों को अनुकूलित करना होगा। –
मैंने सोचा कि मेरे ज्ञान के रूप में एक तरीका हो सकता है कि कैसे पाइथन आंतरिक रूप से सजावटी हैंडल करता है कुछ हद तक सीमित है। –