在python中创建对象实例的问题

在python中创建对象实例的问题,python,class,object,Python,Class,Object,我想定义一个类并创建一个对象实例。但总是会出错。 代码如下所示: 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" <b

我想定义一个类并创建一个对象实例。但总是会出错。 代码如下所示:

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
回溯(最近一次呼叫最后一次):
“模块”中第1行的文件“pyshell#5”
x=复合物(3,4)
TypeError:object.\uuuuu new\uuuuuu()不接受任何参数
那么问题是什么呢


谢谢你的阅读

\u init\u
每侧应有两个下划线:

>>> class complex:
...     def __init__(self,realpart,imagpart):
...         self.r=realpart
...         self.i=imagpart
... 
>>> x=complex(3,4)
另外,正如您所知,Python已经有了一个复杂的类型:

>>> 2+3j
(2+3j)
>>> complex(2, 3)
(2+3j)

\uuuu init\uuuu
应该有2个下划线,而不是1个下划线

所以

应该是

def __init__(self,realpart,imagpart):
  • 还有一个建议是,与多重赋值不同,元组解包更具可读性,效率也更高

  • 更喜欢新类型的类构造,它派生自
    object

  • 对类名使用CamelCase的步骤

  • 如果可用,请始终使用电池,而不是自己滚动。默认情况下,Python已经支持复杂类型

就这样了

class complex(object):
    def __init__(self,realpart,imagpart):
        self.r, self.i=realpart, imagpart

它应该是
\uuuu init\uuuu
而不是
\u init\uuu
Python本机支持复数<代码>3+4j例如
class complex(object):
    def __init__(self,realpart,imagpart):
        self.r, self.i=realpart, imagpart