A question about semantics from the standard library's documentation
Terry Reedy
tjreedy at udel.edu
Thu Sep 19 16:27:33 EDT 2013
On 9/19/2013 11:28 AM, Aseem Bansal wrote:
> In Python 3.3.2 documentation on the Python Standard library's introduction these sentences are given
>
> "For these types, the Python language core defines the form of literals and places some constraints on their semantics, but does not fully define the semantics. (On the other hand, the language core does define syntactic properties like the spelling and priorities of operators.)"
The two preceeding sentences are
"The “Python library” contains several different kinds of components.
It contains data types that would normally be considered part of the
“core” of a language, such as numbers and lists."
> That got me confused. What is defined by the language and what is not?
> Can someone give me an example about what this means?
Take ints. The language manual specific the form of int literals. It
specifies the operations in general terms of 'integers'. It specifies
the precedence of the operators. It does not actually specify the
meaning (semantics) of m + n. You are safe in assuming that (int)2 +
(int)2 = (int)4. However type(2**31) is different on 2.7- 32-bit builds
(long) and 3.0+ (always int). Also note that the language reference does
not specify the int methods other than the special methods needed to
implement the operators.
--
Terry Jan Reedy
More information about the Python-list
mailing list