TypeError (“‘BOOL’ -object is niet iespubliek”,) wanneer u probeert een Booleaanse

Ik heb een vreemd probleem. Ik heb een methode die een boolean retourneert. Op zijn beurt heb ik het resultaat van die functie opnieuw nodig omdat ik de methode van de front-end niet rechtstreeks kan bellen. Hier is mijn code:

# this uses bottle py framework and should return a value to the html front-end
@get('/create/additive/<name>')
def createAdditive(name):
    return pump.createAdditive(name)
 def createAdditive(self, name):
        additiveInsertQuery = """ INSERT INTO additives
                                  SET         name = '""" + name + """'"""
        try:
            self.cursor.execute(additiveInsertQuery)
            self.db.commit()
            return True
        except:
            self.db.rollback()
            return False

Dit gooit een uitzondering: TypeError (“‘Bool’ -object is niet iespubliek”,)

Ik krijg deze fout niet, omdat ik niet probeer te “itereren” de Bool-waarde, alleen om het terug te sturen.

Als ik een string terugkeer in plaats van Boolean of Int het werkt zoals verwacht. Wat kan hier een probleem zijn?

Traceback:

Traceback (most recent call last):
  File "C:\Python33\lib\site-packages\bottle.py", line 821, in _cast
    out = iter(out)
TypeError: 'bool' object is not iterable

Antwoord 1, Autoriteit 100%

Kijk naar de traceback:

Traceback (most recent call last):
  File "C:\Python33\lib\site-packages\bottle.py", line 821, in _cast
    out = iter(out)
TypeError: 'bool' object is not iterable

Je code herhaalt de waarde niet, maar de code die deze ontvangt wel.

De oplossing is: retourneer een iterable. Ik stel voor dat je de bool converteert naar een string (str(False)) of deze in een tuple plaatst ((False,)).

Lees altijd de traceback: het is correct en het is nuttig.

Other episodes