Python种的魔方方法

Python种有许多魔方方法供我们使用
魔法方法被双下划线包围,例如__init__。
魔法方法的第一个参数应为cls(类方法) 或者self(实例方法)。

下面介绍常见的魔方方法
1.init(self[, …])
在上一章类的使用中使用过

class Persondef __init__(self, x, y):self.x = xself.y = y

2.new(cls[, …])
new__是在一个对象实例化的时候所调用的第一个方法,在调用__init__初始化前,先调用__new

new__至少要有一个参数cls,代表要实例化的类,此参数在实例化时由 Python 解释器自动提供,后面的参数直接传递给__init

__new__对当前类进行了实例化,并将实例返回,传给__init__的self

class A(object):def __init__(self, value):print("into A __init__")self.value = valuedef __new__(cls, *args, **kwargs):print("into A")print(cls)return object.__new__(cls)

其中args是传入的数组参数
kwargs是传入的key=value储存的字典。

若__new__没有正确返回当前类cls的实例,那__init__是不会被调用的,即使是父类的实例也不行,将没有__init__被调用。
3. __ del __(self)
析构器,当一个对象将要被系统回收之时调用的方法。

4.__ str __(self):

当你打印一个对象的时候,触发__str__
当你使用%s格式化的时候,触发__str__
str强转数据类型的时候,触发__str__
class Person:def __init__(self, new_name, new_age):self.name = new_nameself.age = new_agedef __str__(self):return "名字是:%s , 年龄是:%d" % (self.name, self.age)

5.__ repr __(self) 的返回结果应更准确。它存在的目的在于调试,便于开发者使用。

算术运算符

1.通过函数来创建对象

class A:passprint(type(len))
print(type(dir))
print(type(int))
print(type(A))
print(int('123'))

2.常见算术运算符
(1)__ add__(self, other)定义加法的行为:+
(2)__ sub__(self, other)定义减法的行为:-
(3)__ mul__(self, other)定义乘法的行为:*
(4)__ truediv__(self, other)定义真除法的行为:/
(5)__ floordiv__(self, other)定义整数除法的行为://
(6)__ mod__(self, other) 定义取模算法的行为:%
(7)__ divmod__(self, other)定义当被 divmod() 调用时的行为
(8)__ pow__(self, other[, module])定义当被 power() 调用或 ** 运算时的行为
(9)__ lshift__(self, other)定义按位左移位的行为:<<
(10)__ rshift__(self, other)定义按位右移位的行为:>>
(11)__ and__(self, other)定义按位与操作的行为:&
(12)__ xor__(self, other)定义按位异或操作的行为:^
(13)__ or__(self, other)定义按位或操作的行为:|

    def __add__(self, others):return MyClass(self.height + others.height, self.weight + others.weight)

此外还有反运算魔方方法,与算术运算符保持一一对应,它的构成是在算术运算符之前加了一个r。当文件左操作不支持相应操作时被调用。

3.增量赋值运算符
__ iadd__(self, other)定义赋值加法的行为:+=
__ isub__(self, other)定义赋值减法的行为:-=
__ imul__(self, other)定义赋值乘法的行为:*=
__ itruediv__(self, other)定义赋值真除法的行为:/=
__ ifloordiv__(self, other)定义赋值整数除法的行为://=
__ imod__(self, other)定义赋值取模算法的行为:%=
__ ipow__(self, other[, modulo])定义赋值幂运算的行为:**=
__ ilshift__(self, other)定义赋值按位左移位的行为:<<=
__ irshift__(self, other)定义赋值按位右移位的行为:>>=
__ iand__(self, other)定义赋值按位与操作的行为:&=
__ ixor__(self, other)定义赋值按位异或操作的行为:^=
__ ior__(self, other)定义赋值按位或操作的行为:|=

4.一元运算符
__ neg__(self)定义正号的行为:+x
__ pos__(self)定义负号的行为:-x
__ abs__(self)定义当被abs()调用时的行为
__ invert__(self)定义按位求反的行为:~x

Python Day11 魔方方法相关推荐

  1. day15、16:Python的魔方方法

    Python的魔方方法 基本的魔法方法 new(cls[, -]) 1. new 是在一个对象实例化的时候所调用的第一个方法 2. 它的第一个参数是这个类,其他的参数是用来直接传递给 init 方法 ...

  2. python 的魔方方法__getattribute__ 和__getattr__方法介绍

    python 中有2个获取对象属性的方法__getattribute__ 和__getattr__方法比较容易混淆, 接下来说明下这2个魔方方法的区别及用法: __getattr__方法 class ...

  3. 简单介绍一下python的魔方方法

    .构造和析构:魔法方法总是被下划线包围例如_init_,其"魔力"体现于总能够在适当的时候被自动调用. (1)init__构造函数:初始化或实例化变量 (2)new(cls[,-] ...

  4. Python基础day08【面向对象(类、对象、属性)、魔方方法(init、str、del、repr)】

    视频.源码.课件.软件.笔记:超全面Python基础入门教程[十天课程]博客笔记汇总表[黑马程序员]   目录 0.复习 1.类外部添加和获取对象属性 2.类内部操作属性 3.魔法方法 3.1.__i ...

  5. python之有关魔方方法的内容

    魔方方法: 在python的类中,以下划线开头,两个下划线结尾的方法,如常见的:init,str,__del__等,就被称为魔方方法,这些方法在类或对象进行特定的操作时会被自动调用,我们可以使用或重写 ...

  6. Python —— 魔方方法

    在Python中 方法名为:XXX() 就是魔方方法 init() 初始化函数,用于完成默认的设置 new() 返回一个对象的实例,init() 无返回值 new()是一个类方法 del() 析构方法 ...

  7. 【循序渐进学Python】面向对象知多少——魔方方法

    [循序渐进学Python]面向对象知多少--魔方方法 据说,Python 的对象天生拥有一些神奇的方法,它们总被双下划线所包围,他们是面向对象的 Python 的一切. 他们是可以给你的类增加魔力的特 ...

  8. python魔方方法__getitem__、__setitem__和__len__

    python魔方方法__getitem__.setitem__和__len 目录 python魔方方法__getitem__.__setitem__和__len__ 一.简介 二.详解 三.代码 四. ...

  9. Python入门基础(下)之魔方方法

    Python入门基础(下)之魔方方法 一.学习内容概括 学习地址:https://tianchi.aliyun.com/s/58327c15d1faee512c008128d3bb9e32 今天主要学 ...

最新文章

  1. 关于学习Python的一点学习总结(45->反运算)
  2. linux java查看进程命令_linux一些查看进程情况的命令
  3. 101_Power Pivot DAX 累计至今,历史累计至今
  4. Session和Cookie的学习笔记2
  5. 【数据分析】Python-NumPy模块的使用
  6. 《SQL高级应用和数据仓库基础(MySQL版)》作业 ·004
  7. 交换机二级可以分流么_「网络安全」网络设备篇(2)——交换机
  8. mysql 组复制和传统复制_2017年12月聚合文章--MySQL 传统复制中常见故障处理和结构优化案例分析 | 码友网...
  9. H264的RTP负载打包的数据包格式,分组,分片
  10. 使用dsoframer演示ppt
  11. android fps测试 apk,性能测试 查看Android APP 帧数FPS的方法
  12. 电子技术基础(三)_第2章放大电路原理__晶体三极管与场效应三极管
  13. 数理化解题研究杂志数理化解题研究杂志社数理化解题研究编辑部2022年第15期目录
  14. Java总结及面试题
  15. IEEE Conference Template Letter
  16. v-if和v-show的使用和特点
  17. ggplot作图显示中文
  18. 轻量化AlphaPose
  19. Arduino ESP8266 清空WIFI配置信息
  20. 树洞外链更新至2.2-支持本地/远程储存,新增用户系统

热门文章

  1. Ceph运维告诉你分布式存储的那些“坑”
  2. MVP从入门到...
  3. GD32F310 (二) 按键轮询输入
  4. html改变元素外边距,CSS 简明教程 - 外边距 ( margin ) 属性
  5. 【CTF】ciscn_2019_es_2
  6. 数字孪生技术海上风电场解决方案
  7. 快捷键使电脑屏幕翻转
  8. win11VMware打开虚拟机就蓝屏重启以及启动不了的解决方案(最全方案)
  9. python系统编程
  10. 页面滑动与锚点的“完美交互”