Автор оригинала: Team Python Pool.
Привет гики и добро пожаловать в сегодняшней статье мы рассмотрим Python new. Наряду с этим мы рассмотрим определение и применение этого метода. Все это мы будем делать на примерах. Как мы знаем, python-это язык программирования высокого уровня. С его помощью мы также можем выполнять объектно-ориентированное программирование. В Python существует несколько специальных методов, известных как magic methods или double underscore methods. Они были широко используемыми методами в перегрузке оператора. Это можно понять как условие, при котором различные операторы имеют различные реализации в зависимости от их аргументов.
Другая вещь, которая отличает магический метод от обычного метода, заключается в том, что они имеют суффиксы и префиксы двойного подчеркивания вокруг них. Например, __new__ , __add__ и т. Д. В этой статье мы в первую очередь сосредоточимся на магическом методе __new__. Далее в этой статье я буду использовать new вместо __new__.
Python __new__ метод и его синтаксис
В этом разделе мы попытаемся понять, что такое новый метод на самом деле. Наряду с этим мы также рассмотрим его синтаксис . Развить полное понимание этого метода.
В объектно-ориентированном программировании всякий раз, когда класс создает экземпляр, вызывается метод < strong>new. Новый метод вызывается при создании объекта и является статическим методом. Для прохождения через него требуется параметр cls. cls. Во время создания экземпляра компилятор сам заботится об этом. Далее рассмотрим синтаксис этого метода.
Синтаксис
class class_name: def __new__(cls, *args, **kwargs): print() return super(class_name, cls).__new__(cls, *args, **kwargs)
Это общий синтаксис нового метода. Здесь мы использовали super с нашим оператором return. Мы используем его, потому что он возвращает временный объект и позволяет нам получить доступ к методам базового класса. Далее рассмотрим некоторые примеры, связанные с этим.
Примеры Python __new__
class A(object): def __new__(cls): print("EXAMPLE-1") return super(A, cls).__new__(cls) A()
Выход:
EXAMPLE-1
Выше мы видим самый первый пример, связанный с новым методом. Здесь мы не сделали ничего необычного, и единственным мотивом было правильно выполнить синтаксис. Здесь мы определили объект. Внутри него мы определили новый класс. Затем мы использовали простую печать и возвратили супер. Наконец, мы просто вызываем объект.
import math class A(object): def __new__(cls): ("enter the number") ("enter the number") (a)+int(b) print(c) return super(A, cls).__new__(cls) A()
Выход:
enter the number 7
enter the number 9
16
В этом примере мы провели сложение 2 чисел. Здесь мы взяли входные данные от пользователя. Остальное мы только что проследили за соответствующим синтаксисом. Из приведенных выше 2 рассмотренных примеров можно сделать вывод, что новый метод вызывается автоматически. А также оператор return super следует использовать при работе с магическими методами.
Разница между __new__ и __init__ магическими методами
Поскольку до сих пор в этой статье мы обсуждали новый магический метод. Метод __int__ также автоматически добавляется при создании экземпляра класса. Здесь разница между 2-мя заключается в том, что метод init используется для инициализации объекта. Кроме того, когда оба метода присутствуют в этом случае сначала выполняется новый метод. После чего решается, использовать ли метод init или нет. Давайте рассмотрим пример, включающий в себя оба метода, которые сделают вещи намного яснее для нас.
class A(object): def __new__(cls): print("New method") return super(A, cls).__new__(cls) def __init__(self): print("Init method ") A()
Выход:
New method
Init method
Выше мы можем увидеть простой пример, включающий оба метода. Из этого мы можем наблюдать еще одну вещь, которая заключается в том, что новое вызывается автоматически. В то время как для init он будет вызываться каждый раз в этом случае.
Вывод
В этой статье мы рассмотрели Python __new__. Мы рассмотрели Магический метод , который вызывается автоматически всякий раз, когда создается экземпляр класса. Мы также рассмотрели его определение и синтаксис. Чтобы понять это правильно, мы рассмотрели несколько примеров. В конце концов, мы также сравнили его с другой функцией с именем init.
Надеюсь, эта статья смогла развеять все сомнения. Но если у вас есть какие-либо нерешенные вопросы, не стесняйтесь писать их ниже в разделе комментариев. Прочитав это, почему бы не прочитать обо всем близком дальше.