加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

在python中使用类中的函数(使用self或不使用)

发布时间:2020-12-20 13:17:16 所属栏目:Python 来源:网络整理
导读: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变量.它不断
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.但是我认为通过调用类中的函数,我不需要再次提供自我?

编辑:我在那里有最后两个语句,因为我还在测试一些东西,以确保一切都在做它在课堂上应该做的事情.

解决方法

sigmoid是Neuralnetwork类的一种方法,因此如果您在类定义之后调用它,则需要首先创建Neuralnetwork类的实例,然后才能使用sigmoid函数:

class Neuralnetwork(object):
     def __init__(self,z):
         g = 1 / (1 + math.exp(-z))
         return (g)

# replace data and z with appropriate values
nn = Neuralnetwork(data)
a1 = nn.sigmoid(z)
print a1

如果需要在类中使用它,请将块放在方法中:

class Neuralnetwork(object):
     def __init__(self,z):
         g = 1 / (1 + math.exp(-z))
         return (g)

     def print_sigmoid(self,z):
         a1 = self.sigmoid(z)
         print a1

# replace data and z with appropriate values
nn = Neuralnetwork(data)
nn.print_sigmoid(z)

我还建议根据PEP 8样式指南:https://www.python.org/dev/peps/pep-0008/#class-names将班级名称更改为NeuralNetwork

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读