[python] Argument 1 of blablabla() has an invalid type



  • "Argument 1 of blablabla() has an invalid type" - kann ich auch rausfinden WELCHEN typ er gerne hätte, oder darf ich das raten? die help( blablabla ) bringt mich nicht weiter, weil blablabla() eine built-in-function ist / bzw die argumente nicht aufgelistet sind.



  • Naja, post doch mal deinen Code, dann kann ich dir vielleicht helfen. 🙂



  • Sind wir hellseher? Zeig code.



  • sdfsdfsdfsdf schrieb:

    Sind wir hellseher? Zeig code.

    es geht nicht um mein problem, sondern um python, deswegen habe ich nicht so viel geschrieben. zur verdeutlichung, was ich meine:

    Python 2.4.4 (#2, Aug 16 2007, 02:03:40) 
    [GCC 4.1.3 20070812 (prerelease) (Debian 4.1.2-15)] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> falscher_typ = u"hallo"
    >>> from PyQt4 import QtGui
    >>> q = QtGui.QApplication( falscher_typ )
    Traceback (most recent call last):
      File "<stdin>", line 1, in ?
    TypeError: argument 1 of QApplication() has an invalid type
    >>> help( "QtGui.QApplication" )
    
    >>> help( "PyQt4.QtGui.QApplication.__init__" )
    
    Help on wrapper_descriptor in PyQt4.QtGui.QApplication:
    
    PyQt4.QtGui.QApplication.__init__ = __init__(...)
        x.__init__(...) initializes x; see x.__class__.__doc__ for signature
    
    >>> QtGui.QApplication.__class__.__doc__
    >>> print QtGui.QApplication.__class__.__doc__
    None
    
    >>> mist
    Traceback (most recent call last):
      File "<stdin>", line 1, in ?
    NameError: name 'mist' is not defined
    


  • A) Benutz doch die C++ Doku um den Typ herauszufinden
    😎 Google einfach nach deiner Methode
    C) Vielleicht nimmt sie kein UNICODE String?
    D) ... gibt sicher noch mehr Möglichkeiten.



  • Da musst du wohl oder übel das ganze über die Doku herausfinden. Im Allgemeinen schert sich Python nicht um Typen beim Funktionsaufruf, ein TypeError wird von der Funktion selbst erzeugt, diese wäre also auch dafür verantwortlich zu sagen, woran es nun (genau) hapert.



  • unregistriert schrieb:

    A) Benutz doch die C++ Doku um den Typ herauszufinden
    😎 Google einfach nach deiner Methode

    das mach' ich auch die ganze zeit, ich dachte nur, ob es vielleicht eine andere möglichkeit gibt? der inerpreter weiß ja im prinzip, welchen dateityp er braucht.



  • blablablab schrieb:

    der inerpreter weiß ja im prinzip, welchen dateityp er braucht.

    nee, das kann ja auch erst zur Laufzeit entschieden werden.

    def foo(x):
    if random()...: raise TypeError(x)


Anmelden zum Antworten