Sobes.tech
Junior — Middle
108

Негизи эмне болот: объект түзүлгөндө куруучу (constructor) ишке ашабы же init методу чакырылабы?

AIден жооп

sobes.tech AI

Pythonда, объект түзүлгөндө, биринчи __new__ методу чакырылат, ал классдын экземплярин түзүүгө жооптуу, андан кийин түзүлгөн объектти баштоо үчүн __init__ конструктору чакырылат.

Pythonда init деп аталган өзүнчө стандарттык метод жок, мүмкүн __init__ түшүнүлөт.

Кыскача айтканда, тартип төмөндөгүчө:

  1. __new__ — объект түзүү
  2. __init__ — объектти баштоо

Мисал:

class MyClass:
    def __new__(cls, *args, **kwargs):
        print('Объект түзүлүүдө')
        return super().__new__(cls)

    def __init__(self):
        print('Объект башталууда')

obj = MyClass()

Чыгуу:

Объект түзүлүүдө
Объект башталууда