classの利用方法
classはclass内に関数を定義することによって、その関数をメソッドとして利用するための型で
あることを理解しました。
また、そのメソッドとリストなどのデータを一緒にしたものをインスタンスと呼んでるという理解を
しています。
そこでclassを今以上に理解するために以下のコードを入力し実行しました。(以下のサイトを参考にさせていただきました)
https://www.sejuku.net/blog/72161
python
1class Calc: 2 def __init__(self, a, b): 3 self.a = a 4 self.b = b 5 6 def Sum(self): 7 self.sum = self.a + self.b 8 return self.sum 9 10ins = Calc(2, 3) 11print(ins.Sum())
結果
5
私の理解ですと__init__()
なる関数は最初に使うというルールを持っている関数であるみたいなのは分かるのですが、ここで使われているself
が分かりません。
このself
を適当な引数として考えてもその次の行のself.a = a
が分かりません。
しかしとりあえず上は飲み込んで自分になりに勉強のために以下にコードを書いてみました。
python
1class SUM: 2 def _init__(self, a): 3 self.a = a 4 def SUm(self): 5 self.sum = sum(self.a) #sumは組み込み関数です。 6 return self.sum 7 8a = [1,1,1,2,2,3,4,5,6,6,6,7] 9 10sum_rensyu = SUM(a) 11print(sum_rensyu.SUm())
結果
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-81-dcf06b7a51bc> in <module> 8 xxx = [1,1,1,2,2,3,4,5,6,6,6,7] 9 ---> 10 sum_rensyu = SUM(xxx) 11 print(sum_rensyu.SUm()) TypeError: object() takes no parameters
参考にさせていただいたコードとおぼ同じコードを書いたにも関わらず実行結果がエラーになってしまいます。
初学者かつ理解力も乏しいのでclassの概念ももし間違っていたらそこの概念から教えて頂けると恐縮です。
よろしくお願いいたします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。