Überprüfen Sie, ob ein parameter ist ein Python-Modul?

Wie kann ich (pythonically) überprüfen Sie, ob ein parameter ist ein Python-Modul? Es gibt keine Art, wie Modul oder Paket.

>>> os
<module 'os' from '/usr/lib/python2.6/os.pyc'>

>>> isinstance(os, module)
Traceback (most recent call last):
  File "/usr/lib/gedit-2/plugins/pythonconsole/console.py", line 290, in __run
    r = eval(command, self.namespace, self.namespace)
  File "<string>", line 1, in <module>
NameError: name 'module' is not defined

Kann ich dies tun:

>>> type(os)
<type 'module'>    

Aber was soll ich es vergleichen? 🙁

Ich habe ein einfaches Modul, um schnell zu finden, Methoden, Module und Holen Sie Hilfe-Texte für Sie. Ich liefere ein Modul var und einen string an meine Methode:

def gethelp(module, sstring):

    # here i need to check if module is a module.

    for func in listseek(dir(module), sstring):
        help(module.__dict__[func])

Natürlich, dies funktioniert auch, wenn Modul = 'abc': dann dir('abc') wird mir die Liste der Methoden für das string-Objekt, aber ich brauchen das nicht.

  • Sie sind bewusst die help () - Methode und pydoc und ähnliche Bemühungen, richtig?
  • pydoc ist ein bisschen anders. Ich brauchte eine einfache Möglichkeit, eine Methode zu finden, ohne zu wissen, den genauen Namen. Zum Beispiel, etwas, dass 'Größe' in os.Pfad.
  • Kannst du nicht die Ente Geben ein Modul? Was braucht man es? Nur versuchen Sie, und fangen Sie die exception aus, wenn es fehlschlägt.
  • Gut, Google docs und helfen ist eine Art von Selbstbeobachtung, also in diesem Fall scheint es okay.
InformationsquelleAutor culebrón | 2009-10-10
Schreibe einen Kommentar