Bugs item #1400235, was opened at 2006-01-09 05:08
Message generated for change (Settings changed) made by collinwinter
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1400235&group_id=5470

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: Python Interpreter Core
Group: Python 2.4
>Status: Deleted
>Resolution: Duplicate
Priority: 5
Submitted By: Collin Winter (collinwinter)
Assigned to: Nobody/Anonymous (nobody)
Summary: 'is' does not work for methods

Initial Comment:
As of Python 2.4.2 (gcc 3.3.6, linux 2.6.13), the 'is'
comparison operator does not work for instancemethods
or classmethods (though it does work for
staticmethods). For example:

"""
>>> class A(object):
...   def foo(self): pass
...
>>> id(A.foo) == id(A.foo)
True
>>> A.foo is A.foo
False
>>>
>>> a = A()
>>> id(a.foo) == id(a.foo)
True
>>> a.foo is a.foo
False
"""

This example is applicable to old-style classes and
new-style classes, though things get more complicated
in the case of built-in types:

"""
>>> d = dict()
>>> id(d.update) == id(d.update)
True
>>> d.update is d.update
False
>>>
>>> id(dict.update) == id(dict.update)
True
>>> dict.update is dict.update
True
"""

However, using the classmethod 'fromkeys':

"""
>>> d = dict()
>>> id(d.fromkeys) == id(d.fromkeys)
True
>>> d.fromkeys is d.fromkeys
False
>>>
>>> id(dict.fromkeys) == id(dict.fromkeys)
True
>>> dict.fromkeys is dict.fromkeys
False
"""

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1400235&group_id=5470
_______________________________________________
Python-bugs-list mailing list 
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to