欢迎来到代码驿站!

Python代码

当前位置:首页 > 软件编程 > Python代码

python进阶之魔术方法详解

时间:2022-02-16 10:44:44|栏目:Python代码|点击:

一、三个内置函数

1、@classmethod–类名.属性名

2、@staticmethod–类名.属性名

3、@property–设置只读属性,方法变属性,别人不易篡改,调用:类名(). 属性名

二、双下划线开头和结尾的方法,叫魔术方法。

1、一个类对象,在__init__初始化之前,还有__new__方法,这里要重写__new__方法,要调用父类的new方法,且将new方法创建的对象返回,即object. new(cls),其中cls代表的是类对象本身(MyClass)。否则无返回值运行报错。

在这里插入图片描述

2、单例模式

这个__new__方法的应用之一,就是单例模式。

实现思路,蓝色线一个回路。黄色线一个回路。

在这里插入图片描述

具体脚本如下。t2实例对象,没有name属性,但是也神奇的输出与t1一致的结果。如此类推,其他也一样,如果把这个. py文件导入其他文件B. py中,在B. py中创建其他实例对象t3,调用这个name属性时就会输出与t1一样的结果。其次,t1、t2、t3的内存地址即id(t1)三个都是一样的。最后,还可以设置其他属性,且之间属性共用。

这个就是单例模式,即实例化一次。(如果多次实例化,设置属性,明显会浪费资源,所以单例模式诞生了。)

在这里插入图片描述

总结

上一篇:利用Python探测附近WIFI密码的详细代码

栏    目:Python代码

下一篇:Python 详解爬取并统计CSDN全站热榜标题关键词词频流程

本文标题:python进阶之魔术方法详解

本文地址:http://www.codeinn.net/misctech/193555.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有