Python에서 __new__() 함수를 사용하여 객체 인스턴스를 만드는 방법
__new__() 함수는 객체 인스턴스를 생성하기 위해 Python에 내장된 특수 메서드입니다. __init__() 메서드와 달리 __new__() 메서드는 개체가 인스턴스화되기 전에 호출되며 개체를 생성하고 개체의 인스턴스를 반환합니다.
Python에서는 객체 인스턴스가 생성될 때마다 실제로 클래스의 __new__() 메서드를 호출하여 수행됩니다. __new__() 메서드는 객체 인스턴스 생성을 담당하며, 그 과정에서 부모 클래스의 __new__() 메서드를 호출하고 마지막으로 새 객체 인스턴스를 반환합니다.
다음은 __new__() 메서드를 사용하여 객체 인스턴스를 생성하는 방법을 보여주는 코드 예제입니다.
class MyClass(object): def __new__(cls, *args, **kwargs): print("调用了__new__()方法") instance = super().__new__(cls) return instance def __init__(self, *args, **kwargs): print("调用了__init__()方法") # 对象初始化操作 # 创建对象实例 my_obj = MyClass()
위 코드에서는 __new__() 및 __init__() 메서드가 포함된 MyClass
클래스를 정의합니다. MyClass
,其中包含了__new__()和__init__()方法。
在__new__()方法中,我们首先打印了一条调试信息,然后通过调用super().__new__(cls)
方法来创建一个新的对象实例,并将该实例返回。注意,在调用super().__new__(cls)
时,我们传递了cls
作为参数,这是因为__new__()方法会接收一个参数cls
,用于表示当前类。
接下来,在__init__()方法中,我们同样打印了一条调试信息,然后可以根据需要进行对象初始化操作。
最后,我们调用MyClass的构造函数来创建对象实例my_obj
super().__new__(cls)
메서드를 호출하여 새 개체 인스턴스를 만들고 해당 인스턴스를 반환합니다. super().__new__(cls)
를 호출할 때 __new__() 메서드가 매개변수 cls</code를 받기 때문에 <code>cls
를 매개변수로 전달했습니다. >, 현재 클래스를 나타내는 데 사용됩니다. 다음으로 __init__() 메서드에서 디버깅 정보도 인쇄한 다음 필요에 따라 객체를 초기화할 수 있습니다. 마지막으로 MyClass의 생성자를 호출하여 객체 인스턴스 my_obj
를 생성합니다. 위 코드를 실행하면 다음과 같은 출력을 볼 수 있습니다. 调用了__new__()方法 调用了__init__()方法
위 내용은 __new__() 함수를 사용하여 Python에서 객체 인스턴스를 만드는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!