Python ''.format(): "tuple index out of range"?
12,285
Watch the colon. Move it from the front of the port area:
Either
data = 'foo {family} {port:} {direction}'.format(
Or
data = 'foo {family} :{port} {direction}'.format(
The results of the two options are:
>>> foo(12345, out=True)
'foo ipv4 12345 out'
>>> foo(12345, out=True)
'foo ipv4 :12345 out'
Author by
Santa
Updated on June 04, 2022Comments
-
Santa almost 2 years
Consider the following snippet:
>>> def foo(port, out, udp=False, ipv6=False, data=''): ... if not data: ... data = 'foo {family} {:port} {direction}'.format( ... family=('ipv6' if ipv6 else 'ipv4'), ... port=port, ... direction=('out' if out else 'in')) ... return data ... >>> foo(12345, out=True) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<stdin>", line 6, in foo IndexError: tuple index out of range
As far as I know, the scoping of names look alright. What's with the cryptic error?