Wie um zu testen, ob ein class-Attribut ist eine Instanz-Methode

In Python, die ich brauche, um effizient und allgemein testen, ob ein Attribut einer Klasse ist eine Instanz-Methode. Die Eingaben für den Anruf wäre der name des Attributs, das geprüft wird (ein string) und ein Objekt.

hasattr gibt true zurück, unabhängig davon, ob das Attribut auf eine Instanz-Methode oder nicht.

Irgendwelche Vorschläge?


Beispiel:

class Test(object):
    testdata = 123

    def testmethod(self):
        pass

test = Test()
print ismethod(test, 'testdata') # Should return false
print ismethod(test, 'testmethod') # Should return true
  • Sind Sie sicher, dass Sie es wissen müssen, es ist eine Methode? Sie sind nicht wirklich Jucken zu wissen, wenn man das so nennen kann? Diese sind nicht notwendigerweise die gleiche Sache (obwohl natürlich sind Sie oft).
  • Was ist Los mit dem Lesen der Quelle? Dies ist die Python-Sie haben die Quelle -- warum kann man nicht einfach Lesen?
  • Das Lesen der Quelle ist nicht zu helfen - vermutlich hat er einige code schreiben, der muss wissen, die Antwort zur Laufzeit. Möglicherweise Durchlaufen alle attrs auf ein Objekt, zum Beispiel.
Schreibe einen Kommentar