我想定义一个类并创建一个对象实例。但总是得到错误。 代码如下:
class complex:
def _init_(self,realpart,imagpart):
self.r=realpart
self.i=imagpart
x=complex(3,4)
错误信息是:
Traceback (most recent call last):<br>
File "pyshell#5", line 1, in "module" <br>
x=complex(3,4) <br>
TypeError: object.__new__() takes no parameters
那么问题是什么?
感谢您的阅读!
答案 0 :(得分:2)
_init_
每边应该有两个下划线:
>>> class complex:
... def __init__(self,realpart,imagpart):
... self.r=realpart
... self.i=imagpart
...
>>> x=complex(3,4)
另外,您知道,Python已经有complex
类型:
>>> 2+3j
(2+3j)
>>> complex(2, 3)
(2+3j)
答案 1 :(得分:1)
__init__
应该有2个下划线而不是1
所以
def _init_(self,realpart,imagpart):
应该是
def __init__(self,realpart,imagpart):
还有一个建议,而不是多个赋值,元组解包将更具可读性和效率
首选新的类型构造,派生自object
PEP8 suggests将CamelCase用于班级名称
如果可用,请始终使用电池,而不是自行滚动。 Python默认支持复杂类型
这就是
class complex(object):
def __init__(self,realpart,imagpart):
self.r, self.i=realpart, imagpart