Genel olarak inspect
'un iyi bir yanıt olduğunu kabul etmekteyken, sınıfınız (ve dolayısıyla sınıf yöntemi) yorumlayıcıda tanımlandığında düz düşer.
dill
'dan dill.source.getsource
kullanırsanız, etkileşimli olarak tanımlanmış olsa bile, işlevlerin ve lambda kaynağının kaynağını alabilirsiniz. Ayrıca, körüklerde tanımlanan ciltli veya bağlı olmayan sınıf yöntemleri ve işlevleri için kod da alabilirsiniz ... ancak, bu kodu, örtülü nesnenin kodu olmadan derleyemeyebilirsiniz. Hala önerildiği üzere kendisine (kaynak kodu ile dosyayı açmak için favori editörü kullanarak başvurmak zorunda olmayabilir
builtin
işlevler veya yöntemleri için
>>> from dill.source import getsource
>>>
>>> def add(x,y):
... return x+y
...
>>> squared = lambda x:x**2
>>>
>>> print getsource(add)
def add(x,y):
return x+y
>>> print getsource(squared)
squared = lambda x:x**2
>>>
>>> class Foo(object):
... def bar(self, x):
... return x*x+x
...
>>> f = Foo()
>>>
>>> print getsource(f.bar)
def bar(self, x):
return x*x+x
>>>
, dill.source
... ANCAK ... çalışmayacak diğer cevaplar). builtins
için kaynağı görüntüleyebildiğini iddia eden cinspect
adlı yeni bir paket var.
Lütfen 'next' değişkenini çağırmayın çünkü 'next' öğesini gölgeler. – Matthias
@Matthias, teşekkürler. –