Wie Bekomme ich den Namen des Moduls an die Klasse eines Objekts Definition Eher Als Modul-Namen der Objekt-Instanziierung?

In python 2.5, ich habe den folgenden code in ein Modul namens modtest.py:

def print_method_module(method):
    def printer(self):
        print self.__module__
        return method(self)
    return printer

class ModTest():

    @print_method_module
    def testmethod(self):
        pass

if __name__ == "__main__":
    ModTest().testmethod()

Jedoch, wenn ich diesen starte, druckt er aus:

__main__

Ist, wenn ich eine zweite Datei namens modtest2.py und führen Sie es:

import modtest

if __name__ == "__main__":
    modtest.ModTest().testmethod()

Dieser druckt:

modtest

Wie kann ich den Dekorator immer ausdrucken modtest, der name des Moduls, in dem die Klasse definiert ist?

InformationsquelleAutor Brent Newey | 2010-02-17

Schreibe einen Kommentar