"Jabin Jezreel" <jabinjezr...@gmail.com> wrote
I am not allowed to do
>>> t = (1, *(2, 3))

Just to be clear, what do you think this means?
What would you expect to happen?

But I am allowed to do
>>> def ts(*t):
... return t
...
>>> ts(1, *(2, 3))
(1, 2, 3)

What do you think is happening here that is different?

I realize I can do
>>> (1,) + (2,3)
(1, 2, 3)

And how does this relate to the use of the asterisk?
Is this what you expect the asterisk version above to do?

What is the rationale behind not having t = (1, *(2, 3))
have the same semantics as the "ts" case above?

That I don't know. The asterisk notation can only be used for unpacking function arguments, but why it is limited to that role I don't know...?


--
Alan Gauld
Author of the Learn to Program web site
http://www.alan-g.me.uk/

_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to