下面是我的代码的一个显着简化的版本.之后__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)
.如果您需要更多背景,请告诉我们!如前所述,这是代码的准系统.