Python刻意练习——魔法方法

基本的魔法方法
new 是在一个对象实例化的时候所调用的第一个方法
它的第一个参数是这个类,其他的参数是用来直接传递给 init 方法
new 决定是否要使用该 init 方法,因为 new 可以调用其他类的构造方法或者直接返回别的实例对象来作为本类的实例,如果 new 没有返回实例对象,则 init 不会被调用
new 主要是用于继承一个不可变的类型比如一个 tuple 或者 string
init(self[, …])
构造器,当一个实例被创建的时候调用的初始化方法
del(self)
析构器,当一个实例被销毁的时候调用的方法
call(self[, args…])
允许一个类的实例像函数一样被调用:x(a, b) 调用 x.call(a, b)
len(self)
定义当被 len() 调用时的行为
repr(self)
定义当被 hash() 调用时的行为
bool(self)
定义当被 bool() 调用时的行为,应该返回 True 或 False
format(self, format_spec)
定义当被 format() 调用时的行为
getattr(self, name)
定义当用户试图获取一个不存在的属性时的行为
getattribute(self, name)
定义当该类的属性被访问时的行为
setattr(self, name, value)
定义当一个属性被设置时的行为
set(self, instance, value)
定义当描述符的值被改变时的行为
delete(self, instance)
定义当描述符的值被删除时的行为
lt(self, other)
定义小于号的行为:x < y 调用 x.lt(y)
le(self, other)
定义小于等于号的行为:x <= y 调用 x.le(y)
eq(self, other)
定义等于号的行为:x == y 调用 x.eq(y)
ne(self, other)
定义不等号的行为:x != y 调用 x.ne(y)
gt(self, other)
定义大于号的行为:x > y 调用 x.gt(y)
ge(self, other)
定义大于等于号的行为:x >= y 调用 x.ge(y)
add(self, other)
定义加法的行为:+
mod(self, other)
定义取模算法的行为:%
divmod(self, other)
定义当被 divmod() 调用时的行为
pow(self, other[, modulo])
定义当被 power() 调用或 ** 运算时的行为
lshift(self, other)
定义按位左移位的行为:<<
rshift(self, other)
定义按位右移位的行为:>>
and(self, other)
定义按位与操作的行为:&
xor(self, other)
定义按位异或操作的行为:^
or(self, other)
定义按位或操作的行为:|

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值