Ok, this is probably definitely a newbie question, but I have looked all over the Python library reference material and tutorials which I can find online and I cannot find a clear definition of what these are and more importantly how to use them. From what I can tell from their use in the examples I've seen, they are for passing a variable number of arguments to a function (which I need to do in a program I am working on). But how do you use them? Is there a fixed order in which the arguments within *arg or **kwarg should be passed or will be called within a function? I realize this probably involves a long- winded answer to a very simple and common programming problem, so if someone has a link to TFM, I'll gladly go RTFM. I just can't find it.
JonathanB wrote: > Ok, this is probably definitely a newbie question, but I have looked > all over the Python library reference material and tutorials which I > can find online and I cannot find a clear definition of what these are > and more importantly how to use them. From what I can tell from their > use in the examples I've seen, they are for passing a variable number > of arguments to a function (which I need to do in a program I am > working on). But how do you use them? Is there a fixed order in which > the arguments within *arg or **kwarg should be passed or will be > called within a function? I realize this probably involves a long- > winded answer to a very simple and common programming problem, so if > someone has a link to TFM, I'll gladly go RTFM. I just can't find it.
That's because it's in the language reference, not in the library reference.
> Ok, this is probably definitely a newbie question, but I have looked > all over the Python library reference material and tutorials which I > can find online and I cannot find a clear definition of what these are > and more importantly how to use them. From what I can tell from their > use in the examples I've seen, they are for passing a variable number > of arguments to a function (which I need to do in a program I am > working on). But how do you use them? Is there a fixed order in which > the arguments within *arg or **kwarg should be passed or will be > called within a function? I realize this probably involves a long- > winded answer to a very simple and common programming problem, so if > someone has a link to TFM, I'll gladly go RTFM. I just can't find it.
I hope this example code will help you understand:
JonathanB wrote: > Ok, this is probably definitely a newbie question, but I have looked > all over the Python library reference material and tutorials which I > can find online and I cannot find a clear definition of what these are > and more importantly how to use them. From what I can tell from their > use in the examples I've seen, they are for passing a variable number > of arguments to a function (which I need to do in a program I am > working on). But how do you use them? Is there a fixed order in which > the arguments within *arg or **kwarg should be passed or will be > called within a function? I realize this probably involves a long- > winded answer to a very simple and common programming problem, so if > someone has a link to TFM, I'll gladly go RTFM. I just can't find it.
Basically 'args' is a tuple with all the positional arguments, kwargs is a dictionary with all the named arguments. Likewise you can pass a tuple to a function like func(*tuple), or a dict like func(**dictionary) or both, where the zuple has to come first.
> I hope this example code will help you understand: >>Code Snipped<<
OOH!! That makes perfect sense, thanks!, *args are passed as a turple, **kwargs are passed as a dictionary. That means **kwargs is probably what I want.
On Jun 5, 7:31 am, "Diez B. Roggisch" <d...@nospam.web.de> wrote:
> JonathanB wrote: > > Ok, this is probably definitely a newbie question, but I have looked > > all over the Python library reference material and tutorials which I > > can find online and I cannot find a clear definition of what these are > > and more importantly how to use them.
Also, well maybe op did not check THE tutorial. Or found explanation too terse. But it's there.