Ich versuche, den Wert (als eine Zeichenfolge) einer StringProperty aber ohne Erfolg zu erhalten. Ich muss es durchlaufen und es wird ein Fehler ausgelöst, wenn ich nur versuche, die Eigenschaft zu durchlaufen, da es nicht iterierbar ist. Wie könnte ich eine StringProperty in eine Python-Zeichenfolge konvertieren oder in etwas, das ich durchlaufen kann und das eine len?Iterate durch StringProperty
EDIT:
Dies ist, wie ich die Art erklären, der das Problem hat:
class Game(ndb.Model):
"""Game object"""
target = ndb.StringProperty(required=True)
attempts_allowed = ndb.IntegerProperty(required=True)
attempts_remaining = ndb.IntegerProperty(required=True, default=5)
game_over = ndb.BooleanProperty(required=True, default=False)
user = ndb.KeyProperty(required=True, kind='User')
users_word = ndb.StringProperty(required=True)
Die letzte Eigenschaft ist diejenige, die ich durchlaufen müssen. Und dies ist die Funktion, die einen Fehler auslöst:
@classmethod
def update_users_word(self, letter):
word_as_list = list(self.users_word)
print ("String is: " + str(getattr(self, 'users_word')))
for pos in self.find_letter_positions_in_word(letter, self.target):
word_as_list[pos] = letter
self.users_word = ''.join(word_as_list)
und dies ist die genauen Fehler:
Number/models.py", line 59, in update_users_word
word_as_list = list(self.users_word)
TypeError: 'StringProperty' object is not iterable
Hoffnung dies deutlicher jetzt ist
Fragen, die Debugging-Hilfe suchen ("Warum funktioniert dieser Code nicht?") Müssen das gewünschte Verhalten, ein bestimmtes Problem oder einen Fehler und den kürzesten Code enthalten, der für die Reproduktion in der Frage erforderlich ist. Fragen ohne eine klare Problemstellung sind für andere Leser nicht nützlich. Siehe: Erstellen eines minimalen, vollständigen und überprüfbaren Beispiels. –
Eine StringProperty * ist * eine Zeichenfolge, und Sie * können * darüber iterieren. Wenn Sie Probleme haben, sollten Sie den tatsächlichen Code und die Fehler veröffentlichen. –
[lesen Sie für ** Verständnis ** * spezifisches Problem oder Fehler und den ** kürzesten Code erforderlich, um zu reproduzieren **. *] (Http://Stackoverflow.com/help/mcve), da Sie die einzige Person sind, die dies hat Problem, weil es Typ "Str" oder "Unicode" ist, ist es wahrscheinlich, dass ** Ihr ** Code falsch ist. –