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