Python: TypeError: Can't Convert 'generator' Object To Str Implicitly
I'm doing an assignment and here is what the class looks like: class GameStateNode: ''' A tree of possible states for a two-player, sequential move, zero-sum, perfect-i
Solution 1:
The problem is the part where you iterate over the children and convert them to strings:
(str(child) for child in node.children)
That is actually a generator expression, which can't be simply converted to a string and concatenated with the left part str(node.value) + '\n'
.
Before doing the string concatenation, you should probably join the strings that get created by the generator into a single string by calling join
. Something like this will join the strings using a comma:
','.join(str(child) for child in node.children)
In the end, your code should probably be simplified to something like
def _str(node):
''' (GameStateNode, str) -> str '''
return (str(node.value) + '\n' +
(','.join(str(child) for child in node.children) if node.children else ''))
Of course, you can join the strings with some other character or string, like '\n', if you want to.
Post a Comment for "Python: TypeError: Can't Convert 'generator' Object To Str Implicitly"