以下、pythonでclassを作り、インスタンス、メソッドにより出力した場合、同じ結果となります。
そのさいにdef_ init を使う/使わない、def init _内を、Pass/Noneにする場合の違いがイマイチ分かりません。
どうぞ、ご教示くださいませ。
python
1class Temp1: 2 def __init__(self): 3 self.x=None 4 self.y=None 5 6 def add(self,x,y): 7 self.x = x 8 self.y = y 9 out = x+y 10 11 return out 12 13a=Temp1() 14a.add(2,3) 15#5 16 17 18class Temp2: 19 def __init__(self): 20 pass 21 22 def add(self,x,y): 23 self.x = x 24 self.y = y 25 out = x+y 26 27 return out 28 29b=Temp2() 30b.add(2,3) 31#5 32 33class Temp3: 34 def add(self,x,y): 35 self.x = x 36 self.y = y 37 out = x+y 38 39 return out 40 41c=Temp3() 42c.add(2,3) 43#5 44
◎こちらを契機に本質問をしています。
def _ _init _ _:
pass
について
python
1#「ゼロから作るDeepLearning」(斎藤康毅)P139より 2 3class AddLayer: 4 def __init__(self): 5 pass 6 7 def forward(self,x,y): 8 out=x+y 9 return out 10 11 def backward(self,dout): 12 dx = dout*1 13 dy = dout*1 14 15 return dx,dy
def _ _init _ _:
self.x = None
self.y = None
について
python
1#「ゼロから作るDeepLearning」(斎藤康毅)P137より 2#https://github.com/oreilly-japan/deep-learning-from-scratch/blob/master/ch05/layer_naive.py 3# coding: utf-8 4 5 6class MulLayer: 7 def __init__(self): 8 self.x = None 9 self.y = None 10 11 def forward(self, x, y): 12 self.x = x 13 self.y = y 14 out = x * y 15 16 return out 17 18 def backward(self, dout): 19 dx = dout * self.y 20 dy = dout * self.x 21 22 return dx, dy 23 24 25class AddLayer: 26 def __init__(self): 27 pass 28 29 def forward(self, x, y): 30 out = x + y 31 32 return out 33 34 def backward(self, dout): 35 dx = dout * 1 36 dy = dout * 1 37 38 return dx, dy 39
回答2件
あなたの回答
tips
プレビュー