Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

python __new__和__init__

作者:冥界少主   发布日期:2025-08-30   浏览:74

class MyClass:
    def __new__(cls, *args, **kwargs):
        # __new__ 是一个静态方法,用于创建类的实例
        # 它在实例创建之前被调用,可以控制实例的创建过程
        print("MyClass.__new__ called")
        instance = super(MyClass, cls).__new__(cls)
        return instance

    def __init__(self, value):
        # __init__ 是初始化方法,在实例创建后被调用
        # 用于初始化实例的属性
        print("MyClass.__init__ called")
        self.value = value

# 创建类的实例
obj = MyClass(10)

print(obj.value)  # 输出: 10

解释说明:

  • __new__ 方法是一个静态方法,它在实例创建之前被调用,负责返回一个新的实例。通常情况下,我们不需要重写这个方法,除非我们需要自定义实例的创建过程(例如单例模式)。
  • __init__ 方法是在实例创建之后被调用,用于初始化实例的属性。它接收传入的参数,并将这些参数赋值给实例的属性。

在这个例子中,当我们创建 MyClass 的实例时,首先会调用 __new__ 方法来创建实例,然后调用 __init__ 方法来初始化实例的属性。

上一篇:python 调用js

下一篇:python的generator

大家都在看

python时间格式

python开发windows应用程序

python中len是什么意思

python ord和chr

python中的yield

python自定义异常

python判断路径是否存在

python list.pop

python pypinyin

python的for i in range

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站