回答編集履歴

2

追記

2017/10/12 14:58

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -7,3 +7,93 @@
7
7
  以前も同様の質問があったので。
8
8
 
9
9
  [エラーが返ってきます(udasityでのpythonの授業内容)原因が分かる方おしえていただけませんか?](https://teratail.com/questions/91394)
10
+
11
+
12
+
13
+ リンク切れしたときのために、一応コピペしておきます。
14
+
15
+ 引用の形式で書きますが、原文を書いたのも私です。
16
+
17
+ > 原因がわかりました。タイポです。
18
+
19
+ > まず、同じエラーが出るコードを示します。
20
+
21
+ > ```Python
22
+
23
+ > class MyClass():
24
+
25
+ > def _init_(arg):
26
+
27
+ > pass
28
+
29
+
30
+
31
+ > my_class = MyClass(1)
32
+
33
+
34
+
35
+ > """出力
36
+
37
+ > Traceback (most recent call last):
38
+
39
+ > File "hoge.py", line 5, in <module>
40
+
41
+ > my_class = MyClass(1)
42
+
43
+ > TypeError: object() takes no parameters
44
+
45
+ > """
46
+
47
+ > ```
48
+
49
+
50
+
51
+ > このエラーの原因は、`__init__`と書くべきところを、`_init_`と書いていることです。
52
+
53
+
54
+
55
+ > ---
56
+
57
+ > もう少し具体的にお話しします。
58
+
59
+ > Pythonの全てのクラスは、[object](https://docs.python.jp/3/library/functions.html? highlight=object#object)を継承しています。
60
+
61
+
62
+
63
+ > よって、次のように、一見空っぽなクラスを作っても...
64
+
65
+ > ```Python
66
+
67
+ > def EmptyClass():
68
+
69
+ > pass
70
+
71
+
72
+
73
+ > print(dir(EmptyClass))
74
+
75
+
76
+
77
+ > """出力
78
+
79
+ > ['__annotations__', '__call__', '__class__', '__closure__', '__code__', '__defaults__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__',
80
+
81
+ '__get__', '__getattribute__', '__globals__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__kwdefaults__', '__le__', '__lt__', '__module__', '__name__', '__ne__', '__new__', '__qualname__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__']
82
+
83
+ > """
84
+
85
+ > ```
86
+
87
+
88
+
89
+ > ...このように、数多くのメソッドを持ちます。
90
+
91
+ > ですので、必須のメソッドである`__init__`をタイポしても、自動的に実装されてしまうのです。
92
+
93
+
94
+
95
+ > ここで、先ほどのエラーをもう一回見てみましょう。
96
+
97
+ > `TypeError: object() takes no parameters` **『objectは引数を取らないよ』**
98
+
99
+ > 確かに直接的な原因を指摘しているエラーメッセージだったんですね。

1

追記

2017/10/12 14:58

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -1 +1,9 @@
1
1
  `__int__`は`__init__`の間違いだと思います。
2
+
3
+
4
+
5
+ タイポによってなんでそのようなエラーが起きるかは、次のページをご覧ください。
6
+
7
+ 以前も同様の質問があったので。
8
+
9
+ [エラーが返ってきます(udasityでのpythonの授業内容)原因が分かる方おしえていただけませんか?](https://teratail.com/questions/91394)