INADA Naoki <songofaca...@gmail.com> added the comment:
__new__ is special function too. It is converted as staticmethod when class creation. Since manually converting to (static|class)method is allowed, I don't think automatic conversion should be applied when attach after class creation. $ python3 Python 3.7.2 (default, Feb 12 2019, 08:15:36) [Clang 10.0.0 (clang-1000.11.45.5)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> class C: ... def __new__(cls): ... pass ... >>> type(C.__dict__['__new__']) <class 'staticmethod'> >>> class D: ... pass ... >>> D.__new__ = lambda cls: cls >>> type(D.__dict__['__new__']) <class 'function'> ---------- nosy: +inada.naoki _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue36042> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com