python特殊属性及方法怎么用


这篇文章主要介绍“python特殊属性及方法怎么用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“python特殊属性及方法怎么用”文章能帮助大家解决问题。在python中,以单下划线开头的(_a)的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用“from xxx import *”而导入,“单下划线” 开始的成员变量叫做保护变量,意思是只有类对象和子类对象自己能访问到这些变量;以双下划线开头的(_ _a)代表类的私有成员,意思是只有类对象自己能访问,连子类对象也不能访问到这个数据;以双下划线开头和结尾的(_ _a_ _)代表python里特殊方法专用的标识,如 _ _init_ _()代表类的构造函数。如果是一个对象的调用,则表示类的名称,而不是表示对象的名称;如果当前模块被直接执行(主模块),_ _ name _ _ 存储的是_ _ main _ _ ;如果当前模块是被调用的模块(被导入),则_ _ name _ _存储的是py文件名(模块名称)。1、表示对象的名称2、表示_ _ main _ _函数的名称,也就是程序的入口,类似于java中main函数3、如果当前模块被其他模块调用,则是当前模块的名称demo1.pydemo2.py运行demo2.py文件后,得到的结果为:demo1_ _ bases _ _ 表示类的所有基类;_ _ base _ _ 输出类继承的第一个父类(类的基类); _ _ mro _ _ 输出类的层次结构。表示对象的类型,相当于type()函数。表示对象和类的一些属性,用一个字典存储起来。表示类的所有直接子类。_ _ new _ _ ()是一个静态方法,用于根据类型创建实例。Python在调用 _ _ new _ _ ()方法获得实例后,会调用这个实例的_ _ init _ _ ()方法,然后将最初传给 _ _ new _ _ ()方法的参数都传给 _ _ init _ _ ()方法免费云主机域名。_ _ init _ _ ()是一个实例方法,用来在实例创建完成后进行必要的初始化,该方法必须返回None。Python不会自动调用父类的 _ _ init _ _ ()方法,这需要额外的调用:_ _ new _ _ ()至少要有一个参数cls,代表要实例化的类,此参数在实例化时由Python解释器自动提供;_ _ new _ _ ()必须要有返回值,返回实例化出来的实例,可以return父类new出来的实例,或直接是object的new出来的实例。在GC之前,Python会调用这个对象的 _ _ del _ _ ()方法完成一些终止化工作。如果没有 _ _ del _ _ ()方法,那么Python不做特殊的处理;此外,Python无视_ _ del _ _ ()方法的返回值;Python不会自动调用父类的 _ _ del _ _ ()方法,除非显式调用;定义了 _ _ del _ _ ()方法的实例无法参与到循环GC中,所以对于这样的实例应该避免循环引用;try/finally语句或with语句可能是比_ _ del _ _()更好的方式。_ _ repr _ _ ()是一个 ”自我描述“ 的方法,也是Python类中的一个特殊方法,由object对象提供,由于object提供的这个 _ _ repr _ _ 方法总是返回一个对象, ( 类名 + obejct at + 内存地址 ),这个值并不能真正实现自我描述的功能,如果你想在自定义类中实现 “自我描述” 的功能,那么必须重写 _ _ repr _ _ 方法。_ _ repr _ _ ()方法返回的字符串主要是面向解释器的。_ _ str _ _ ()与_ _ repr _ _ ()返回的详尽的、准确的、无歧义的对象描述字符串不同,_ _ str _ _ ()方法只是返回一个对应对象的简洁的字符串表达形式。如上代码所示,当_ _ str _ _ ()缺失时,Python会调用_ _ repr _ _ ()方法。实际上_ _ str _ _ ()只是覆盖了_ _ repr _ _ ()以得到更友好的用户显示。Python内置的str()函数,print(x)语句,都会调用对象的_ _ str _ _()方法。定义了该方法的对象可以像函数那样被调用,因此被称为可调用对象。当两个对象x、y分别进行xy、x>=y、x==y和x!=y运算时,会调用对应的函数。三种情形会调用__hash__()方法:1. 内置的hash()方法,2.作为字典的键时,3.作为集合的成员时;_ _ hash _ _ ()方法应该返回一个32位长的整数,对与同一个对象,hash()方法应该总是返回相同的值;对于 x == y ,即使二者不属于相同的类型,只要他们是可哈希的(hashable),都应该确保得到 hash(x) == hash(y) ;_ _ eq _ _()正确的用法:通过_ _ hash _ _ 返回一个int值,用来标记这个对象。对于类而言,如果没有实现_ _ eq _ _ ()和 _ _ hash _ _ ()函数,那么会自动继承object._ _ hash _ _()。关于“python特殊属性及方法怎么用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注百云主机行业资讯频道,小编每天都会为大家更新不同的知识点。

相关推荐: php有没有main函数

这篇文章主要讲解了“php有没有main函数”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php有没有main函数”吧! PHP中没有main函数;该函数常用于java与C语言中,又被称为主函数,作为绝大部分C…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 03/22 09:48
下一篇 03/22 09:48

相关推荐