Junior — Middle
რა ხდება პირველად: ობიექტის შექმნისას კონსტრუქტორის შესრულება თუ init მეთოდის გამოძახება?
sobes.tech AI
პასუხი AI-სგან
Python-ში, როდესაც ობიექტი შეიქმნება, პირველად იძახება მეთოდი __new__, რომელიც პასუხისმგებელია კლასის ინстанციის შექმნაზე, შემდეგ კი იძახება კონსტრუქტორი __init__, რომელიც ინიციალიზებს შექმნილ ობიექტს.
Python-ში init როგორც ცალკე სტანდარტული მეთოდი არ არსებობს, სავარაუდოდ იგულისხმება __init__.
საერთო წესით, წესრიგი ასეა:
__new__— ობიექტის შექმნა__init__— ობიექტის ინიციალიზაცია
მაგალითი:
class MyClass:
def __new__(cls, *args, **kwargs):
print('ობიექტის შექმნა')
return super().__new__(cls)
def __init__(self):
print('ობიექტის ინიციალიზაცია')
obj = MyClass()
გამოტანა:
ობიექტის შექმნა
ობიექტის ინიციალიზაცია