在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