class Neuralnetwork(object):
def __init__(self, data):
self.data = data
def scan(self):
print(self.data)
def sigmoid(self, z):
g = 1/(1 + math.exp(-z))
return (g)
a1 = sigmoid(7)
print a1
なぜシグモイド関数でa1変数が表示されないのかわかりません。それは1の代わりに2つの入力を必要としているというエラーを発し続けます。しかし、私はクラス内の関数を呼び出すことで、再びそれに自己を供給する必要はないと思いましたか?Pythonでクラス内の関数を使う(自己を使うかしないか)
編集:最後の2つのステートメントがあります。なぜなら、すべてがクラス内のすべてのことを実行していることをテストしているからです。
'sigmoid'は、クラス定義内の関数であるため。 'a1 = ..'と' print a1'をインデントしてクラスの一部にしたのはなぜですか? 'def sigmoid' **をクラス定義の外に**置くのは、それがメソッドではないのではないでしょうか? –
最後の2行のインデントについては確かですか?それはクラスから外れているはずです。 – Astrom
クラスメソッドの中からクラスを呼び出す場合は、 'self.sigmoid(7)'と呼ぶ必要があります。 * outside *から呼び出す場合は、 'obj.sigmoid(7)'を呼び出すために 'Neuralnetwork'の*インスタンス*を作成する必要があります。 –