why () is () and [] is [] work in other way?

Kiuhnm kiuhnm03.4t.yahoo.it
Tue Apr 24 11:19:53 EDT 2012


On 4/24/2012 15:25, rusi wrote:
> On Apr 24, 4:06 pm, Thomas Rachel<nutznetz-0c1b6768-bfa9-48d5-
> a470-7603bd3aa... at spamschutz.glglgl.de>  wrote:
>> Am 24.04.2012 08:02 schrieb rusi:
>>
>>> On Apr 23, 9:34 am, Steven D'Aprano<steve
>>> +comp.lang.pyt... at pearwood.info>    wrote:
>>
>>>> "is" is never ill-defined. "is" always, without exception, returns True
>>>> if the two operands are the same object, and False if they are not. This
>>>> is literally the simplest operator in Python.
>>
>>> Circular definition: In case you did not notice, 'is' and 'are' are
>>> (or is it is?) the same verb.
>>
>> Steven's definition tries not to define the "verb" "is", but it defines
>> the meanung of the *operator* 'is'.
>>
>> He says that 'a is b' iff a and be are *the same objects*. We don't need
>> to define the verb "to be", but the target of the definition is the
>> entity "object" and its identity.
>
> Identity, sameness, equality and the verb to be are all about the same
> concept(s) and their definitions are *intrinsically* circular; see
> http://plato.stanford.edu/entries/identity/#2
>
> And the seeming simplicity of the circular definitions hide the actual
> complexity of 'to be'
> for python:  http://docs.python.org/reference/expressions.html#id26
> (footnote 7)
> for math/philosophy: http://www.math.harvard.edu/~mazur/preprints/when_is_one.pdf

What you say is true in general, but not from an operational point of 
view, especially if we restrict the set of objects whose sameness or 
identity we want to check:
Let O be a set of tuples (id, data) where
   {(id, data1), (id, data2)} subset O => data1 = data2
Def. (id1, data1) and (id2, data2) in O are /the same/ iff id1 = id2.
Now, it's easy to find a bijection between O and the set of Python's 
objects which are in memory at any single point in time.

Anyway, you're being unnecessarily pedantic.

Kiuhnm



More information about the Python-list mailing list