python用用复数的属性输出实部和虚部

这个real和imag我觉得有点问题,果真运行不出来,但是我不知道哪里出了问题,该怎么改

img

real既然是属性,你把它前面加俩下划线是啥意思,这样隐藏了外部无法访问了
下划线删掉
还有,你只有real定义为属性了,imag没有加修饰符,就是普通函数

你真聪明被你发现了。
在Python中,以双下划线开头和结尾的方法名是特殊方法或魔术方法,用于实现类的特殊行为。以双下划线开头但不以双下划线结尾的方法名是普通方法。

在方法名前加__real__real__并没有特殊含义,它们只是普通的方法名。如果在类中定义这样的方法,它们将被视为普通方法,而不是特殊方法。因此,它们不会实现任何特殊行为,也不会被Python解释器自动调用。

在Python中,以双下划线开头和结尾的方法名是保留的,应该避免在自己的代码中使用这样的方法名。如果需要实现特殊行为,应该使用Python提供的特殊方法名。