当前位置:  开发笔记 > 编程语言 > 正文

在类结构中使用functools.partial,"name'self'未定义"

如何解决《在类结构中使用functools.partial,"name'self'未定义"》经验,为你挑选了0个好方法。

下面是我的代码的一个显着简化的版本.之后__init__()有几个功能.

我试图用来functools.partial创建基本comparison函数的不同版本,它引用了类中早期创建的函数calculation.此比较函数的一个版本可能grade_comparison如下所示.

class Analysis(mybaseclass):

    def __init__(self, year, cycle):
....

    def calculation(self, subject):
        print subject

    def comparison(subject, **kwargs):
        self.calculation(subject)

    grade_comparison = functools.partial(comparison, infoList1 = ['A', 'B'])

当我运行我的代码时,出现错误,NameError: global name 'self' is not defined.我尝试添加self许多似乎合乎逻辑的组合 - 下面是一个例子.

self.grade_comparison = functools.partial(comparison, self, infoList1 = ['A', 'B'])

这个更改导致了这个错误,NameError: name 'self' is not defined 当我将self添加到比较函数时(见下文):

def comparison(self, subject, **kwargs):
        self.calculation(subject)

我收到这个错误TypeError: comparison() takes at least 2 arguments (1 given).如果您需要更多背景,请告诉我们!如前所述,这是代码的准系统.

推荐阅读
kikokikolove
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有