当前位置: 首页 > 图灵资讯 > 行业资讯> Python之类方法、__new__方法和__init__方法介绍

Python之类方法、__new__方法和__init__方法介绍

发布时间:2025-10-22 21:25:53

在编程语言中创建一个术语,如构造方法。在Python中,人们通常认为__init__是一种结构方法,但并不完全相同。在建筑类别中,有一种特殊的方法__new__,这种能力等同于结构方法。

__new_________________________new__不需要,因为它经过特殊处理。理解__new__方法,我们先来看看类别方法是什么。

类方法

classMyClass:
@classmethod
deftest(cls):
print(cls.__name__)

MyClass.test()
#输出MyClass

在MyClass类中,test方法是类方法,它引入的第一个参数是cls,实际上是MyClass类,打印clss.__name__可以看到结果。类别方法可以直接使用。 类名.方法名()调用。通常类型的方法是替代结构的方法。

类别方法的应用

>>>fromdatetimeimportdatetime
>>>datetime.fromtimestamp(324234)
datetime.datetime(1970,1,5,2,3,54)

如上所示,内置datetime包中的fromtimestamp是一种可以多种方式构建datetime对象的类方法。

相关推荐:Python视频教程

__new__方法

def__new__(cls,a):
returnsuper().__new__(cls)

__new__是一种类型的方法,所以第一个参数也是cls,其余的是构造方法所需的参数。通常__new__不需要定义,只需要元类编程,它可以控制类的生成过程。

__new__必须返回一个例子(instance),传入到__init__方法中的self参数,即实例变量。在这里返回父类(object)的__new__方法用来创建一个新的例子。相当于

obj=object.__new__(MyClass)
obj=MyClass()
#obj是一个例子,上述两种方法相等

其中,MyClass是类别,obj是实例(instance)

__init__方法

__new___是一种结构方法,所以__init__是初始函数,负责将变量绑定到实例中,更新实例__dict__字典。第一个参数self是__new__的返回值是类别的例子。__new___________init__方法执行。

def__init__(self,a):
self.a=a

结合使用

classMyClass:
def__new__(cls,a):
returnsuper().__new__(cls)
def__init__(self,a):
self.a=a
obj=MyClass(3)
print(obj.a)

要点

1.__new___是结构方法,___init__是初始化函数。

2.__new__通常不需要手动定义,一般用于元编程,控制生成过程。

3.__new___第一个被执行,然后执行__init__绑定实例变量。

4.__new_____________________________init__函数接收,通常称为self变量。

相关文章

Python之类方法、__new__方法和__init__方法介绍

Python之类方法、__new__方法和__init__方法介绍

2025-10-22
Python中如何使用_new_实现单例模式

Python中如何使用_new_实现单例模式

2025-10-22
python生成器中的send()方法和next()方法

python生成器中的send()方法和next()方法

2025-10-22
Python转义字符及用法

Python转义字符及用法

2025-10-22
Python中的迭代器是什么

Python中的迭代器是什么

2025-10-22
什么是Python中的闭包

什么是Python中的闭包

2025-10-22