Writing a Combined Function
Take away those syntax things. So for people watching, what do you think here? Error, no error? You’ve got three seconds until I run this. And then you’ll see. Three, two, one … Error, because the
x needs to be a positional one.
And why’s that? That’s because we have the
* here that says this needs to be a keyword argument. It’s a keyword-only argument. Just walk us over the whole, because it’s a little, there’s a lot of stuff in this function signature, maybe you can just walk us over it. Right, yeah, in the
combined() function definition, there’s what appears to be a load of parameters here, but they’re really only three. There’s
The special syntax you’ve been exploring is the forward slash (
/) and the asterisk (
*), which will say everything before the
/ is a positional-only parameter, and everything after the
* is a keyword-only parameter, which means that
x can never be called with
x= something. It has to be just the value of
y can be either, and
z can only be called with
z= something. It can’t be shown with just the value. And the error you get here isn’t talking about the keyword-only argument, because it’s looking at the number of positional arguments, and it’s saying that it can take zero to two, but it already knows that you’re passing it three. So it says, “Okay, something’s gone wrong. I haven’t even checked the keyword arguments, but something’s already gone wrong.” So it just gives you the first one. Cool.
Become a Member to join the conversation.