ad

《Python学习笔记 从入门到实战》_更了解Python的途径之一_7.4.7 静态方法和类方法

网友投稿 55 2023-11-07

【摘要】 本书摘自《Python学习笔记 从入门到实战》一书中第7章,第4节,由张学建编著。

7.4.7 静态方法和类方法

在 Python 程序中,类中的方法可以分为多种,其中最为常用的有实例方法、类方法和 静态方法。具体说明如下所示。

(1)实例方法:在本书前面用到的所有类中的方法都是实例方法,其隐含调用参数是 类的实例。

(2)类方法:隐含调用的参数是类。在定义类方法时,应使用装饰器@classmethod 进 行修饰,并且必须有默认参数 “cls”。

《Python学习笔记 从入门到实战》_更了解Python的途径之一_7.4.7 静态方法和类方法

(3)静态方法:没有隐含调用参数。类方法和静态方法的定义方式都与实例方法不同, 它们的调用方式也不同。在定义静态方法时,应该使用修饰符@staticmethod 进行修饰,并 且没有默认参数。

注意:在调用类方法和静态方法时,可以直接由类名进行调用,在调用前无须实例化类。

另外,也可以使用该类的任意一个实例进行调用。

例如在下面的实例代码中,演示了使用类方法和静态方法的过程。

实例7-10:同时使用类方法和静态方法

源码路径:下载包\daima\7\7-1 0

实例文件jing.py 的具体实现代码如下所示。

class Jnegf:_init__(self,x=0):

@staticmse =x

在上述实例代码中,在类Jing 中同时定义静态方法和类方法,然后在未实例化时使用类

名进行调用,最后在实例化后用类实例再次进行调用。执行后会输出:

7.4.8 类的专有方法

在Python 程序中,类可以定义专用方法,也被称为专有方法。专用方法是指在特殊情 况下或当使用特别语法时由Python 替你调用的,而不是在代码中直接调用(像普通的方法 那样)。例如本章前面讲解的构造方法 init )和析构方法 del 就是常见的专有方法。

在Python语言中,类中常用的专有方法如下表7-1 所示。

7.5 属性

注意:属性反映了面向对象的编程思想,即不能直接操作类的字段。属性隔离了字段, 而且能对要赋值的字段进行监测,合乎要求的才会被允许。属性是这样的成员:它提供了灵 活的机制来读取、编写或计算某个私有字段的值。可以像使用公共数据成员一样使用属性,

但实际上它们是称作“访问器”的特殊方法。这使得可以轻松访问数据,此外还有助于提高 方法的安全性和灵活性。

7.5.1 认识属性

在 Python 程序中,属性是对类进行建模必不可少的内容,7.3节介绍的方法是用来操作数 据的,而和操作相关的大部分内容都和下面将要讲解的属性有关。我们既可以在构造方法中定 义属性,也可以在类中的其他方法中使用定义的属性。在本章前面的内容中,已经多次用到了 属性,例如在本章前面的实例7-5和实例7-7中, “name” 和 “age” 都是属性。实例7-7的 实现代码如下所示:

在实例7-7的代码中,在构造方法 init )中创建一个表示特定小狗的实例,并使用 我们提供的值来设置属性name 和age。在 my_dog.name.title() 和 str(my_dog.age) 中点运算符“. ” 访问了实例属性,运算符表示法在Python 中很常用,这种语法演示了Python 如何获取属性 的值。在上述代码中, Python 先找到实例my_dog, 再查找与这个实例相关联的属性name。

在类Dog 中引用这个属性时,使用的是 selfname。 同样道理,可以使用同样的方法来获取 属性age 的值。在代码 “my_dogname.title()” 中,将my_dog的属性 name 的值改为首字母 是大写的,当然我们代码中用的是汉字,读者可以将其设置为字母试一试。在代码行“str(my_ dogage)” 中,将my_dog的属性age 的值“6”转换为字符串。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 [email protected] 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:《Excel VBA+SQL数据管理与应用模板开发》_工作效率UP!_3.1 SQL 主要语句
下一篇:《自己动手写 Python 虚拟机》_更理解虚拟机的意义_1.1 编程语言的发展
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×