首页 > 教育培训

python的init方法一定会执行吗 python中如何快速创建多个对象?

python中如何快速创建多个对象?

让让我们先谈谈基本概念。我称未初始化的类为类对象,初始化的类为实例对象。

类对象中有一个字典,里面存储了类域下的所有函数对象。

其中,用@classmethod修饰一个函数后,该函数就变成了一个类方法,在生成类对象时被实例化,并传入一个参数。通常,这个参数称为cls。

python的init方法一定会执行吗 python中如何快速创建多个对象?

函数用@staticmethod修饰后,也是类的静态方法,但默认情况下不会传递cls参数。

如果你不t用上面的decorator来修饰它,这个函数是类的一个实例方法,默认会传递一个参数,这个参数通常命名为self。

而这个自我在传递给实例方法之前,需要由__init__函数执行,这就是初始化。

但是python是一种动态语言,上面的规则基本都是约定俗成的,在解释器中没有很强的约束。

分类是必要的,你这里不带参数的方法要归入staticmethod,在实际使用中要加一个修饰符,规定这是staticmethod。

什么?;这种方法有什么用?事实上,它没什么用处。classmethod是必需的,但staticmethod不是。

我只在使用class作为作用域或者使用class作为字典时使用这个方法。

如何理解并正确使用python中的self?

在学习如何定义类的过程中,无论是显式创建类构造函数,还是在类中添加实例方法,都需要将self参数作为方法的第一个参数。例如,按如下定义dog类:

一个

classdog:

def__init__(self):

打印(执行构造函数)

#定义一个jump()实例方法

definejump(self):

打印(执行跳转方法)

python要求类方法(构造函数和实例方法)至少要包含一个参数,但并没有指定这个参数的名称(根本可以叫任何参数名)。类方法的第一个参数之所以命名为self,只是python程序员的一个约定。一个让程序可读性更强的习惯。

换句话说,同一个类可以产生多个对象。当一个对象调用一个类方法时,该对象会自动将自己的引用作为第一个参数传递给该方法。换句话说,python会自动将类方法的第一个参数绑定到调用该方法的对象。那么,皮索解释器可以知道哪个对象的方法来操作。对于构造函数,self参数(第一个参数)表示构造函数正在初始化的对象。

因此,程序在调用实例方法和构造函数时不需要为第一个参数传递值。例如,将前面的dog类更改如下:

一个

十一

十二

十三

十四

十五

classdog:

def__init__(self):

打印(自身,调用构造函数)

#定义一个jump()方法

definejump(self):

打印(自身,执行跳转方法)

#定义一个run()方法,这个方法需要jump()方法的帮助。

definingoperation(self):

打印(自身,执行运行方法)

#使用self参数引用调用run()方法的对象。

self.jump()

dog1狗()

()

dog2狗()

()

方法参数对象self

原文标题:python的init方法一定会执行吗 python中如何快速创建多个对象?,如若转载,请注明出处:https://www.xinyige.net/tag/26798.html
免责声明:此资讯系转载自合作媒体或互联网其它网站,「鑫艺阁」登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,文章内容仅供参考。