类的常用魔术方法:无需人为调用,基本是在特定的时刻自动触发,方法名被前后两个下划线包裹

__init__:构造函数。

__new__:对象实例化方法,其实这才是类里面第一个被调用的方法,在构造函数之前调用,之后才是__init__,只是这个比较特殊,一般不使用。

__call__:对象当函数的时候触发。

class A():def __init__(self,name = 0):print("哈哈,我是构造函数")def __call__(self):print("我是__call__函数")a = A()
a()    #对象当函数使用,如果没有__call__函数会报错

__str__:当对象被当做字符串使用过的时候调用。

class A():def __init__(self,name = 0):print("哈哈,我是构造函数")def __str__(self):return "我只是一个例子"a = A()
print(a)  #把对象当字符串使用

__repr__:返回字符串,跟__str__函数差不多。

以上都是属于操作类的

属性操作相关:

__getattr__:访问不存在属性的时候触发。

__setattr__:对成员属性进行设置的时候触发,有三个参数--

1,self用来获取当前对象

2,被设置的属性名称,以字符串形式出现

3,需要对属性名称设置的值

作用:进行属性设置的时候进行验证或者修改。注意:在该方法中不能对属性直接进行赋值操作,否则会陷入死循环

A():def __init__(self):passdef __setattr__(self, name, value):print("设置属性:{0}".format(name))self.name = value        #这句语句会导致死循环a = A()
a.age = 18

所以为了避免死循环,规定统一调用父类魔法函数:

class A():def __init__(self):passdef __setattr__(self, name, value):print("设置属性:{0}".format(name))super().__setattr__(name,value)    #super函数调用父类,避免死循环a = A()
a.age = 18

运算分类相关魔术方法:

__gt__:进行大于判断的时候触发的函数。

以上就是常用的一些魔术方法了。

Python类常用的魔术方法相关推荐

  1. (转)python类:magic魔术方法

    原文:https://blog.csdn.net/pipisorry/article/details/50708812 版权声明:本文为博主皮皮http://blog.csdn.net/pipisor ...

  2. php如何在特定情况下触发,php类知识点滴---魔术方法,系统在特定时机触发的方法...

    __get()获取私有或受保护属性时调用的方法 class coach { private $chairfit = "徐晓冬"; public function __constru ...

  3. Python中最全魔术方法整理

    Python中的魔术方法 所谓魔法函数(Magic Methods),是Python的一种高级语法,允许你在类中自定义函数,并绑定到类的特殊方法中.比如在类A中自定义__str__()函数,则在调用s ...

  4. MultipartFile类常用的一些方法

    2019独角兽企业重金招聘Python工程师标准>>> MultipartFile类常用的一些方法: String getContentType()//获取文件MIME类型 Inpu ...

  5. python进阶1:魔术方法

    1.定义 在类里面,使用__xx__()形式的方法.这一类方法可以在类被构建的时候隐式调用,从而实现多种功能.也可以通过重载这些魔术方法,来实现自定义的功能. 2.常用的魔术方法 2.1 __new_ ...

  6. python定义私有变量的方法_Python怎么修改私有属性 如何访问python类中的私有方法...

    python 类为什么不能定义私有属性和方法 因为b.name[0] = 'zhang'修改的是类属性,类属性是全局的,所有的实例共享,如果想私有化,可以添加 def __init__( self ) ...

  7. 浅谈Python类的属性和方法

    浅谈Python类的属性和方法 参考文献 在python中,有私有属性和公有属性,方法我们也一样,他们之间有何区别? 还有类属性和实例属性又是怎么回事? 静态方法和类方法又有什么区别? 我们在工作过程 ...

  8. python 类中的 __getitem__方法

    经常会遇到python类中遇到一些特殊的方法,最常见的就是__ini__方法,想必大家都遇到过,今天来谈谈另外一种非常好用的类方法--__getitem__ 来点干货, __getitem__的作用是 ...

  9. python DataFrame常用描述性统计分析方法

    python DataFrame常用描述性统计分析方法 文章目录 python DataFrame常用描述性统计分析方法 sum() 求和 mean() 求平均值 max() 最大值 & mi ...

  10. Python 类常用各种方法及区别

    Python中至少有三种比较常见的方法类型,即实例方法,类方法.静态方法.它们是如何定义的呢?如何调用的呢?它们又有何区别和作用呢?且看下文. 首先,这三种方法都定义在类中.下面我先简单说一下怎么定义 ...

最新文章

  1. 遗传:微生物组数据分析方法与应用
  2. 大华测试笔试题_互联网校招非技术岗的这三类笔试题目你都清楚了吗?
  3. 用了ReSharpe硬是爽
  4. python pyqt5 窗体自适应_Pyqt5自适应布局实例
  5. java tail -f 后返回_tail -f 的实现 | 学步园
  6. 惊!Kubernetes 将弃用 Docker,开发者们怎么办?
  7. 工作308:控制change
  8. filter过滤器实现验证跳转_返回验证结果
  9. linux脚本编写思想,Linux脚本编写入门基础(三)
  10. jvm对象从新生代到老年代_JVM内存管理、JVM垃圾回收机制、新生代、老年代以及永久代...
  11. BGP的同步规则分析
  12. android分享到新浪微博,认证+发送微博
  13. 第三阶段应用层——1.10 数码相册—main_page主界面的显存管理、页面规划、输入控制
  14. 支付宝客户端拉起支付
  15. 安卓手机变鼠标图文教程
  16. 关于旅游景点主题的HTML网页设计——北京景点 7页(带订单购物车)
  17. react中嵌入网页_react添加/嵌入 iframe
  18. 让QQ的文字漂亮起来
  19. robotframework 中ride数据丢失且关键词无法高亮
  20. MySQL中 反引号、单引号 和 双引号 的区别

热门文章

  1. 高通如何通过9008端口读取EMMC的分区
  2. CEPH浅析”系列之三——CEPH的设计思想
  3. 在linux环境下编译运行OpenCV程序的两种方法 - woshijpfgg
  4. FFmpeg的H.264解码器源代码简单分析
  5. 火狐查看html的隐藏域,IE/火狐/Chrome操作display:none对象所遇问题解答
  6. matlab 数值积分 截断误差,几种数值积分算法误差分析(10页)-原创力文档
  7. mysql自助完成翻页代码_MySql实现翻页查询功能
  8. mockito 外部接口_mockito – Spring批处理作业的端到端测试用例
  9. 异常处理1:复习、异常概述和异常体系结构
  10. 南华大学ACM队2021年7.14训练赛题解