Bazı dümen işlevlerini özel dekoratörlerle süsleyen bir modülüm var.Süslü işlevlere adım atmanın bir yolu var, dekoratör kodunu atlıyor
Bu işlevlerin pdb ile hata ayıklaması sıklıkla bir acı vericidir, çünkü her zaman dekore edilmiş bir işleve adım attığımda, ilk önce dekoratör kodunun kendisinden geçmek zorundayım.
Tabii ki hata ayıklayıcısını, ilgilendiğim işlevin içinde kırmak için ayarlayabilirim, ancak önemli işlevler olarak birçok yerden birçok kez çağrılırlar, bu nedenle genellikle işlevin dışında hata ayıklamayı başlatmayı tercih ederim.
Ben koduyla göstermek için çalıştı, ama o yardımcı olur bilmiyorum: Yanidef 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()
beni i_dont_care_about_this
geçmeden i_am_here
den i_only_care_about_this
hayata adım atmak bir yol var? Verilen bir şekilde dekore fonksiyonun içine (s) dım için s kullanırken
Esasen bütün dekoratör kodunu atlamak istiyor.
ve en hangi orijinal işlevin işaret ettiği entere D? Dekoratörlerinizi ve PDB'nizi bu gibi bir şey yapmak için uyarlamanız gerekir. –
Python'un dekoratörleri içsel olarak nasıl ele geçirdiğini bildiğim kadarıyla bir yol olabileceğini düşündüm. –