Op 25-11-15 om 21:39 schreef Ian Kelly: > On Wed, Nov 25, 2015 at 11:27 AM, Antoon Pardon > <antoon.par...@rece.vub.ac.be> wrote: >> I don't know what you are talking about. The first thing I have argued >> is that () is a literal. Then I have expaned that to that something >> like (3, 5, 8) is a literal. I never argued that tuple expressions >> in general are literals. And one way I supported my point was with the >> following quote from the python language reference. >> >> Literals are notations for constant values of some built-in types. >> >> And I think that the things I argued were literals, were in fact >> constant values of some built-in type. > > I believe that sentence from the docs is using "some" to mean "not > all", whereas you are apparently using it to mean "any". > > frozenset([1,2,3]) constructs a constant value of a built-in type. > Would you consider that a literal?
I am inclined to say yes, because a sufficient intelligent compilor can compute the value and store it do be retrieved and bound to a target when needed. > How about tuple(1, 2+3, abs(-19))? Still a constant value of a built-in type. Same reasoning. > I think the most important word in the definition you quoted is > actually "notation". It says it right there: literals are not > "constant values", but notations for *expressing* constant values. And how does that make a difference? > The tuple display notation expresses values that may be constant but > need not be. Therefore it's not a literal notation. Not in general no. It doesn't imply that not any tuple display notation is a literal notation. Expression may be constant but need not be, that is no reason to claim that anything that is an expression can't be a literal. -- Antoon. -- https://mail.python.org/mailman/listinfo/python-list