python中的魔法属性和方法
魔法属性:
首先,我们先谈一谈什么叫做魔法属性?
魔法属性和方法是Python内置的一些属性和方法,有着特殊的含义。命名时前后加上两个下划线,在执行系统特定操作时,会自动调用。
那么接下来,我们就列举一些常见的魔法属性和方法。
1._init_:
初始化方法,在创建类对象的时候,会自动执行方法
class Student(object):def __init__(self,name,age):self.name=nameself.age=agedef haha(self):print(self.name)print(self.age)stu=Student("蛋蛋",18) # ----->自动执行__init__ 方法
print(stu.haha())
2._str_:
在输出打印 对象 时,默认输出该方法的返回值。
class Student(object):def __str__(self):return "你好可爱啊?" stu=Student()
print(stu) # ----->自动执行__str__方法,输出,你好可爱啊
3._del_:
当对象不使用了,在内存中销毁时,自动执行该方法
注:改操作通常是Python的解释器在进行垃圾回收,释放内存时自动完成。
class Student(object):def __del__(self): # ---->一般情况下,无需定义pass
4._doc_:
把类和方法的一些注释描述信息,打印出来
class Student(object):''' 这是我定义的一个hahah方法,你看见没啊'''def hahah(self):passstu=Student()
print(stu.__doc__) #---->输出: 这是我定义的一个hahah方法,你看见没啊
5._call_:
当在对象后面加上(),会自动执行该方法
注:_init__方法的执行是由创建对象触发的,即:对象 = 类名() ;而对于 _call 方法的执行是由对象后加括号触发的,即:对象() 或者 类()()
class Student(object):def __init__(self):passdef __call__(self, *args, **kwargs):print('这是call方法啊')stu=Student()
stu() # ---->加上()后,会自动执行实例化对象的方法 输出:这是call方法啊
6._dict_:
列出类或对象中所有属性
class Student(object):gender='男'def __init__(self,name,age):self.name=nameself.age=agedef fun(self, *args, **kwargs):print('这是fun')#print(Student.__dict__)
stu=Student('老王',19)
print(stu.__dict__)
看看输出结果:
{'name': '老王', 'age': 19}
7._module_:
表示当前操作的对象在那个模块
class Student(object):def __init__(self,name,age):self.name=nameself.age=agedef fun(self, *args, **kwargs):print('这是fun')stu=Student('老王',19)
print(stu.__module__) #-----> 输出__main__
8._class_:
表示当前操作的对象的类是什么
class Student(object):def __init__(self,name,age):self.name=nameself.age=agedef fun(self, *args, **kwargs):print('这是fun')stu=Student('老王',19)
print(stu.__class__) #输出-----》<class '__main__.Student'>
9._getitem_、setitem、delitem:
用于索引操作,如字典。以上分别表示获取、设置、删除数据
class Student(object):def __getitem__(self, key):print('__getitem__', key)def __setitem__(self, key, value):print('__setitem__', key, value)def __delitem__(self, key):print('__delitem__', key)stu =Student()result = stu['k1'] # 自动触发执行 __getitem__
stu['k2'] = '伙计' # 自动触发执行 __setitem__
del stu['k1'] # 自动触发执行 __delitem__
输出结果:
__getitem__ k1
__setitem__ k2 伙计
__delitem__ k1
参考文献:
python中的魔法方法及属性
python中的魔法属性和方法相关推荐
- Python中的魔法属性
魔法属性 在Python中,所有以 __ 双下划线包起来的方法,都统称为 Magic Method,例如类的初始化方法 __init__() ,实例对象创造方法 __new__()等. 魔法属性和方法 ...
- Python中的特殊属性与方法
模块的特殊属性 __doc__ 模块的说明文档 __all__ 指明模块希望被使用的属性.类和方法 __file__ 模块所在路径 类的特殊属性 __slots__ 限制类的实例允许添加的属性,是一个 ...
- python私有属性怎么定义_Python中定义私有属性的方法是()。
[判断题]请假条带有请求的性质,所以一般来说篇幅要尽量长一些,以示郑重;更多要用煽情性语句,以打动对方.( ) [单选题]关于类和对象的关系,下列描述正确的是(). [选择]Трудоспособны ...
- Python的类和对象的介绍,定义类和对象,定义实例方法和属性以及Python中的魔法方法
Day09新手小白学python 第九节 Python的类和对象的介绍,定义类和对象,定义实例方法和属性以及Python中的魔法方法 目录 Day09新手小白学python 前言 一.面向对象介绍 二 ...
- python深度讲解_《深度剖析CPython解释器》21. Python类机制的深度解析(第五部分): 全方位介绍Python中的魔法方法,一网打尽...
楔子 下面我们来看一下Python中的魔法方法,我们知道Python将操作符都抽象成了一个魔法方法(magic method),实例对象进行操作时,实际上会调用魔法方法.也正因为如此,numpy才得以 ...
- Python高级——魔法属性和方法
魔法属性和方法 1.__doc__:表示类的描述信息 2.__module__和__class__:当前操作对象所属的模块和类 3.__init__:初始化方法,类创建对象时,自动触发执行 4.__d ...
- python中属于私有属性的是_Python中的实例属性和私有属性
相关知识点 实例属性 实例属性和类属性的区别在于实例属性定义在类的__init__()魔法方法中,而类属性定义在类下: 1 classC:2 b = 1 #类属性 3 4 def __init__(s ...
- (Python高级编程)第二章:Python中的魔法函数
文章目录 一:什么是魔法函数 (1)魔法函数 (2)作用 二:Python中的魔法函数 (1)字符串表示 (2)集合序列相关 (3)迭代相关- (4)可调用 (5)with上下文管理器 (6)数制转换 ...
- 关于python中requests模块导入问题-python中requests模块的使用方法
本文实例讲述了python中requests模块的使用方法.分享给大家供大家参考.具体分析如下: 在HTTP相关处理中使用python是不必要的麻烦,这包括urllib2模块以巨大的复杂性代价获取综合 ...
最新文章
- 彻底卸载 RAD Studio 2009/2010/XE+ 的步骤
- jdbc excute方法理解的误区
- C++ floor、ceil、round函数的区别
- 呆萌的图模型学习——基本概念(一)
- javascript Array对象基础
- 记录——《C Primer Plus (第五版)》第十章编程练习第三题
- bzoj 1193: [HNOI2006]马步距离(贪心+BFS)
- 图像的缩放,旋转,转置和镜像
- 简单的Qt倒计时程序--番茄钟
- 一个500人天的BI项目实施记录
- thinkpad重装系统步骤
- java计算机毕业设计交通事故档案管理系统源程序+mysql+系统+lw文档+远程调试
- 罗格斯大学电气与计算机工程专业怎么样,罗格斯大学计算机工程排行,千万得细心点听懂...
- 【Windows Server 2019】路由服务的配置和管理
- java 307跳转_GitHub - yy307/java-weixinlib: 微信公众平台接入
- log4j配置详解(非常详细转载)
- 利达主机如何注册设备_利达主机操作说明
- weiphp2.0:关于OneThink后台添加密码重置的功能
- 【Vue】- created()方法
- 排名第一的亚马逊关键词工具