【发布时间】:2017-04-14 14:44:04
【问题描述】:
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
我不确定为什么它不会使用 sigmoid 函数打印 a1 变量。它不断启动一个错误,说它需要 2 个输入而不是 1 个。但我认为通过在类中调用该函数,我不需要再次向它提供 self 吗?
编辑:我有最后两个语句,因为我仍在测试,以确保一切都在做它应该在课堂上做的事情。
【问题讨论】:
-
因为
sigmoid是类定义中的一个函数。你为什么要缩进a1 = ..和print a1成为班级的一员?如果def sigmoid不是一个方法,为什么不把def sigmoid放在之外? -
你确定你最后两行的缩进吗?看来应该下课了。
-
如果你是从一个类方法的内部调用它,你需要将它调用为
self.sigmoid(7)。如果你想从外部调用它,那么你需要创建一个Neuralnetwork的instance来调用obj.sigmoid(7)。 -
你是对的,如果你从课堂上打电话,你就不需要自我。但是,这个调用应该从另一个方法发生。您不能像这里那样在类中进行浮动调用。
-
看看下面的两个答案,他们应该可以帮助你
标签: python function class self