Positional and Keyword Argument Conflict

def connect(host, port, timeout=30):
    return f"{host}:{port} (timeout={timeout})"

print(connect("localhost", 8080, port=9090))

What happens when this code runs?

A

It prints 'localhost:8080 (timeout=9090)', because 9090 falls through to fill timeout instead

B

It raises TypeError: connect() got multiple values for argument 'port'

C

It prints 'localhost:9090 (timeout=30)', because the keyword argument overrides the earlier positional one

D

It prints 'localhost:8080 (timeout=30)', because the first value given for port wins and the keyword is ignored