Bir hata ayıklama aracı yapıyorum.Bir Python sınıfı verildiğinde, kodumda tanımlandığı yeri nasıl inceleyebilir ve bulabilirim?
ipython beni
MyCls??
gibi şeyler yapalım Ve bana kaynağını gösterecektir.
Bir hata ayıklama aracı yapıyorum.Bir Python sınıfı verildiğinde, kodumda tanımlandığı yeri nasıl inceleyebilir ve bulabilirim?
ipython beni
MyCls??
gibi şeyler yapalım Ve bana kaynağını gösterecektir.
sys.modules[MyCls.__module__].__file__
veya
inspect.getsourcefile(MyCls)
yararlı bulabileceğiniz çeşitli nesneler üzerinde
__xxx__
attributes daha vardır.
İşte Python'un meta bilgileri yetenekleri çoğunun oldukça iyi bir özet yer almaktadır:
inspect modülünde ihtiyacınız olan her şey var.
Sadece kaynağı görmek istiyorsanız, inspect.getsource bunu yapmak için çok doğrudan bir yoldur; Daha ileri kullanımlar için (kaynak kaynağının, satır numaralarını, vb. alınıyor), inspect
'daki diğer işlevlere, getsource
'dan hemen önceki aynı URL'de belgelenmiştir. Kaynak mevcut değilse, bu tür her işlevin bir istisna artacağını unutmayın, bu nedenle aradığınızda bir try
/except
bloğu içinde olduğunuzdan emin olun ve durumunuza göre istisnayı ele alın. (Ayrıca, umarım söyleyebildiğim gibi, inspect
işlevselliğini aramak istediğiniz modüllerinizde import inspect
'a ihtiyacınız vardır).