首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >函数作为类属性

函数作为类属性
EN

Stack Overflow用户
提问于 2021-01-04 01:40:27
回答 1查看 242关注 0票数 0

在编写类时,我希望将函数作为类属性传递,然后使用它,如下所示:

代码语言:javascript
复制
class Nevronska_mreza:
    def __init__(self, st_vhodni, st_skriti, st_izhod, prenosna_funkcija=pf.sigmoid):
        self.mreza = []
        self.st_vhodni = st_vhodni
        self.st_skriti = st_skriti
        self.st_izhodni = st_izhod
        self.prenosna_funckija = prenosna_funkcija
        self.mreza.append([{'utezi': [random() for i in range(st_vhodni + 1)]} for j in range(st_skriti)])
        self.mreza.append([{'utezi': [random() for i in range(st_skriti + 1)]} for j in range(st_izhod)])

    def razsirjanje_naprej(self, vhod):
        for sloj in self.mreza:
            nov_vhod = []
            for nevron in sloj:
                nevron['izhod'] = self.prenosna_funkcija(self.aktivacijska_funkcija(nevron['utezi'], vhod))
                nov_vhod.append(nevron['izhod'])
            vhod = nov_vhod
        return vhod

但这似乎不是正确的方法,我得到了以下错误:

AttributeError:“Nevronska_mreza”对象没有属性“prenosna_funkcija”

有可能做这样的事吗?

EN

回答 1

Stack Overflow用户

发布于 2021-01-04 01:54:30

你很亲密:

代码语言:javascript
复制
def fun1(x):
return x+1

class A:
    def __init__(self, function=fun1, data1=None, data2=None):
        self.function = function
        self.data1 = data1
        self.data2 = data2

    def some_method(self):
        y = self.function(self.data1)
        return y

a = A(data1 = 41)
result = a.some_method()
print(result)

版画

代码语言:javascript
复制
42
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65556729

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档