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

时间:2013-02-20 04:23:17

标签: 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" <br>
  x=complex(3,4) <br>
  TypeError: object.__new__() takes no parameters

那么问题是什么?

感谢您的阅读!

2 个答案:

答案 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