1

クラスを定義し、オブジェクト インスタンスを作成したいと考えています。しかし、常にエラーが発生します。コードは次のようになります。

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

それで、問題は何ですか?

読んでくれてありがとう!

4

2 に答える 2

2

_init_両側に 2 つのアンダースコアが必要です。

>>> 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)
于 2013-02-20T04:25:02.883 に答える
1

__init__1 つではなく 2 つのアンダースコアで囲まれているはずです

そう

def _init_(self,realpart,imagpart):

する必要があります

def __init__(self,realpart,imagpart):
  • もう1つ提案するのは、複数の割り当ての代わりに、タプルのアンパックがより読みやすく、わずかに効率的であるということです

  • から派生した新しい型クラス構造を優先するobject

  • PEP8 は、クラス名に CamelCase を使用することを提案しています

  • 自分で巻くのではなく、可能な場合は常にバッテリーを使用してください。Python はデフォルトですでに複合型をサポートしています

だからここに行く

class complex(object):
    def __init__(self,realpart,imagpart):
        self.r, self.i=realpart, imagpart
于 2013-02-20T04:25:11.193 に答える