

現在pythonを独学しているものなのですが、「みんなのpython（第四版）」をつかっていて、下のように打ち込んだのですが参考書通りの反応をしてくれません。どこがまちがっていて、なにをすればいいのかを教えてください。（pythonのverは3.6.5で、Anacondaのjupyter
notebookを使って練習しています）

[code]

    In(1)class Prism:
            def _init_(self,width,height,depth):
                self.width=width
                self.height=height
                self.depth=depth
            def content(self):
                return self.width*self.height*self.depth
    In(2)p1=Prism(10,20,30)
         p1.content()
    
[/code]

参考書には６０００と戻り値がでるとかいてあるのですが、

[code]

    ---> 1 p1=Prism(10,20,30)
          2 p1.content()
    
    TypeError: object() takes no parameters
    
[/code]

のエラーが出てしまいます。どうか教えてください。


CC BY-SA 4.0
2018-10-15T13:35:05.737
49310
2018-10-15T15:02:55.437
2018-10-15T13:55:45.697
3054
30534
question
python
pythonのクラスについて勉強しているのですが、なにが間違っているのかわかりません


コンストラクタの定義が間違っています。

[code]

     class Prism:
         def __init__(self,width,height,dept):
             self.width = width
             self.height=height
             self.depth =dept
         def content(self):
             return self.width,self.height,self.depth
    
     p1 = Prism(10,20,30)
    
[/code]

pythonでのコンストラクタは`def __init__`として定義する必要があります。`def
init`はコンストラクタとして扱われませんので、基底クラスObjectのコンストラクタで引数3つのパターンを探しにいったけど、対象がないのでエラーってことです。


CC BY-SA 4.0
2018-10-15T13:55:26.520
49312
2018-10-15T15:02:55.437
2018-10-15T15:02:55.437
10174
10174
49310
answer