Python Day11 魔方方法
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 魔方方法相关推荐
- day15、16:Python的魔方方法
Python的魔方方法 基本的魔法方法 new(cls[, -]) 1. new 是在一个对象实例化的时候所调用的第一个方法 2. 它的第一个参数是这个类,其他的参数是用来直接传递给 init 方法 ...
- python 的魔方方法__getattribute__ 和__getattr__方法介绍
python 中有2个获取对象属性的方法__getattribute__ 和__getattr__方法比较容易混淆, 接下来说明下这2个魔方方法的区别及用法: __getattr__方法 class ...
- 简单介绍一下python的魔方方法
.构造和析构:魔法方法总是被下划线包围例如_init_,其"魔力"体现于总能够在适当的时候被自动调用. (1)init__构造函数:初始化或实例化变量 (2)new(cls[,-] ...
- Python基础day08【面向对象(类、对象、属性)、魔方方法(init、str、del、repr)】
视频.源码.课件.软件.笔记:超全面Python基础入门教程[十天课程]博客笔记汇总表[黑马程序员] 目录 0.复习 1.类外部添加和获取对象属性 2.类内部操作属性 3.魔法方法 3.1.__i ...
- python之有关魔方方法的内容
魔方方法: 在python的类中,以下划线开头,两个下划线结尾的方法,如常见的:init,str,__del__等,就被称为魔方方法,这些方法在类或对象进行特定的操作时会被自动调用,我们可以使用或重写 ...
- Python —— 魔方方法
在Python中 方法名为:XXX() 就是魔方方法 init() 初始化函数,用于完成默认的设置 new() 返回一个对象的实例,init() 无返回值 new()是一个类方法 del() 析构方法 ...
- 【循序渐进学Python】面向对象知多少——魔方方法
[循序渐进学Python]面向对象知多少--魔方方法 据说,Python 的对象天生拥有一些神奇的方法,它们总被双下划线所包围,他们是面向对象的 Python 的一切. 他们是可以给你的类增加魔力的特 ...
- python魔方方法__getitem__、__setitem__和__len__
python魔方方法__getitem__.setitem__和__len 目录 python魔方方法__getitem__.__setitem__和__len__ 一.简介 二.详解 三.代码 四. ...
- Python入门基础(下)之魔方方法
Python入门基础(下)之魔方方法 一.学习内容概括 学习地址:https://tianchi.aliyun.com/s/58327c15d1faee512c008128d3bb9e32 今天主要学 ...
最新文章
- 关于学习Python的一点学习总结(45->反运算)
- linux java查看进程命令_linux一些查看进程情况的命令
- 101_Power Pivot DAX 累计至今,历史累计至今
- Session和Cookie的学习笔记2
- 【数据分析】Python-NumPy模块的使用
- 《SQL高级应用和数据仓库基础(MySQL版)》作业 ·004
- 交换机二级可以分流么_「网络安全」网络设备篇(2)——交换机
- mysql 组复制和传统复制_2017年12月聚合文章--MySQL 传统复制中常见故障处理和结构优化案例分析 | 码友网...
- H264的RTP负载打包的数据包格式,分组,分片
- 使用dsoframer演示ppt
- android fps测试 apk,性能测试 查看Android APP 帧数FPS的方法
- 电子技术基础(三)_第2章放大电路原理__晶体三极管与场效应三极管
- 数理化解题研究杂志数理化解题研究杂志社数理化解题研究编辑部2022年第15期目录
- Java总结及面试题
- IEEE Conference Template Letter
- v-if和v-show的使用和特点
- ggplot作图显示中文
- 轻量化AlphaPose
- Arduino ESP8266 清空WIFI配置信息
- 树洞外链更新至2.2-支持本地/远程储存,新增用户系统
热门文章
- Ceph运维告诉你分布式存储的那些“坑”
- MVP从入门到...
- GD32F310 (二) 按键轮询输入
- html改变元素外边距,CSS 简明教程 - 外边距 ( margin ) 属性
- 【CTF】ciscn_2019_es_2
- 数字孪生技术海上风电场解决方案
- 快捷键使电脑屏幕翻转
- win11VMware打开虚拟机就蓝屏重启以及启动不了的解决方案(最全方案)
- python系统编程
- 页面滑动与锚点的“完美交互”