dragov 发表于 2022-10-31 08:14:16

使用魔法方法,求解取模

class Serendipitv(int):
    def __mod__(self,other):
      return int.__mod__(self,other)
genuine=Serendipitv(258,7)
print(genuine)

程序运行报错,那么如何给程序传入2个数字呢?








tommyyu 发表于 2022-10-31 08:15:22

把第四行改为
genuine=Serendipitv(258) % Serendipitv(7)

dragov 发表于 2022-10-31 08:46:19

tommyyu 发表于 2022-10-31 08:15
把第四行改为

如果在第4句添加 % , 那么这个魔法方法还有什么意义呢 ?

整个程序就直接写成这样了:
genuine=258 % 7
print(genunie)

tommyyu 发表于 2022-10-31 08:47:56

dragov 发表于 2022-10-31 08:46
如果在第4句添加 % , 那么这个魔法方法还有什么意义呢 ?

整个程序就直接写成这样了:


你定义了这个类的__mod__方法,所以就需要让两个 Serendipitv 的对象向取模,这样才会调用他的__mod__魔法方法

相当于 在两个 Serendipitv 对象使用 % 运算符是,这个魔法方法才会被调用

tommyyu 发表于 2022-10-31 08:52:13

dragov 发表于 2022-10-31 08:46
如果在第4句添加 % , 那么这个魔法方法还有什么意义呢 ?

整个程序就直接写成这样了:


而你 genuine=Serendipitv(258,7) 这样写调用的是 Serendipitv 的 __init__ 方法,但是你这个类继承了 int 类,而 int 类的 __init__ 方法只有两个参数,而你在调用的时候传入了两个参数,加上 self 是三个参数,就会报错

dragov 发表于 2022-10-31 08:53:44

tommyyu 发表于 2022-10-31 08:52
而你 genuine=Serendipitv(258,7) 这样写调用的是 Serendipitv 的 __init__ 方法,但是你这个类继承了 in ...

{:7_130:} 谢谢
页: [1]
查看完整版本: 使用魔法方法,求解取模