第15158题 单选题
有关给定Python class Num代码的说法,正确的是哪一项?

给定Python代码如下:

class Num:
    def __init__(self,val):
        self.Value = val
    def __add__(self,other):
        return self.Value + other.Value
    def add(self,other):
        return self.Value + other.Value

a = Num(10)
print(a + Num(20), Num(20).__add__(a), a.add(Num(20)))
print(a)
D

倒数第1行代码 print(a) 将被正确执行,虽然没有定义相关成员函数或方法

A

在倒数第2行打印代码中,a + Num(20) 将执行正确,而 Num(20).add(a) 将导致错误

B

由于类Num中没有定义加号运算符,所以倒数第2行打印代码中的 a + Num(20) 被执行时将导致错误

C

如果将 a.add(Num(20)) 修改为 Num(20).add(a) 将导致错误,因为 Num(20) 不是一个对象,而a是类Num的对象