On 2023-09-15 at 10:49:10 +0000, scruel tao via Python-list <python-list@python.org> wrote:
> ```python > >>> class A: > ... def __init__(self): > ... pass > ... > >>> A.__init__ > <function A.__init__ at 0x0000026CFC5CCEE0> > >>> a = A() > >>> a.__init__ > <bound method A.__init__ of <__main__.A object at 0x0000026CFC1BB400>> > ``` > > On many books and even the official documents, it seems that many authors > prefer to call `__init__` as a "method" rather than a "function". > The book PYTHON CRASH COURSE mentioned that "A function that’s part of a > class is a method.", however, ` A.__init__` tells that `__init__` is a > function... I always call __init__ "the initializer." YMMV. > I wonder how can I call `__init__` as? Consider the output above. > Maybe both are OK? If you prefer or think that we must use one of the two, > please explain the why, I really want to know, thanks! Usually, you don't call (or even refer to) __init__ from your application. One __init__ can call another one in the case of initializing superclasses. When you evaluate A(), Python calls __init__ for you. You can see this if you add something "visible" to __init__, like a print statement. -- https://mail.python.org/mailman/listinfo/python-list