python 定制类 有什么用
答案:2 悬赏:10 手机版
解决时间 2021-03-15 01:18
- 提问者网友:酱爆肉
- 2021-03-14 07:18
python 定制类 有什么用
最佳答案
- 五星知识达人网友:廢物販賣機
- 2021-03-14 08:18
C.__init__(self[, arg1, ...]) 构造器(带一些可选的参数)
C.__new__(self[, arg1, ...]) 构造器(带一些可选的参数);通常用在设置不变数据类型的子类。
C.__del__(self) 解构器
C.__str__(self) 可打印的字符输出;内建 str()及 print 语句
C.__repr__(self) 运行时的字符串输出;内建 repr() 和‘‘ 操作符
C.__unicode__(self) Unicode 字符串输出;内建 unicode()
C.__call__(self, *args) 表示可调用的实例
C.__nonzero__(self) 为 object 定义 False 值;内建 bool() (从 2.2 版开始)C.__len__(self) “长度”(可用于类);内建 len()
C.__new__(self[, arg1, ...]) 构造器(带一些可选的参数);通常用在设置不变数据类型的子类。
C.__del__(self) 解构器
C.__str__(self) 可打印的字符输出;内建 str()及 print 语句
C.__repr__(self) 运行时的字符串输出;内建 repr() 和‘‘ 操作符
C.__unicode__(self) Unicode 字符串输出;内建 unicode()
C.__call__(self, *args) 表示可调用的实例
C.__nonzero__(self) 为 object 定义 False 值;内建 bool() (从 2.2 版开始)C.__len__(self) “长度”(可用于类);内建 len()
全部回答
- 1楼网友:野味小生
- 2021-03-14 09:12
__radd__是自定义的类操作符,执行“右加”。当python解释器执行到a+b这样的语句时,首先在查找a中有没有__add__操作符,如果a中没有定义,那么就在b中查找并执行__radd__。
下面是个简单例子
class a:
pass
class b:
def __radd__(self, a):
print 'b.__radd__'
return a.v + self.v
class c:
def __add__(self, b):
print 'c.__add__'
return self.v + b.v
a = a()
a.v = 1
b = b()
b.v = 2
c = c()
c.v = 3
print a + b #因为a中没有__add__,所以调用的是b.__radd__
print c + b #c中有__add__,所以调用的是c.__add__
至于__iadd__(),是运算符类operator的成员函数,就是累加操作符的另一种调用形式。
a = operator.__iadd__(a, b)就等价于a += b
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯