Ich habe eine Funktion, die eine andere Funktion als Parameter übernimmt. Wenn die Funktion ein Mitglied einer Klasse ist, muss ich den Namen dieser Klasse finden. ZB
%Vor%Ich dachte
%Vor%würde meine Probleme lösen, aber das sagt mir nur, dass testFunc eine Funktion ist.
im_class
ist die Klasse vonim_self
für gebundene Methoden oder die Klasse, die gefragt hat für die Methode für ungebundene Methoden
Ich bin kein Python-Experte, aber funktioniert das?
%Vor%Es scheint für gebundene Methoden zu funktionieren, aber in Ihrem Fall verwenden Sie möglicherweise eine ungebundene Methode. In diesem Fall könnte das besser funktionieren:
%Vor%Hier ist der Test, den ich verwendet habe:
%Vor%Oh ja, noch etwas:
%Vor% Wenn Sie also etwas kugelsicheres wollen, sollte es auch __objclass__
und __self__
behandeln. Aber Ihre Laufleistung kann variieren.
Von python 3.3 ist .im_class
verschwunden. Sie können stattdessen .__qualname__
verwenden. Hier ist die entsprechende PEP: Ссылка
Tags und Links python reflection metaprogramming