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