以下は、私のコードを大幅に簡略化したバージョンです。その後、__init__()
いくつかの機能があります。
クラスで以前に作成された関数を参照するfunctools.partial
基本関数のさまざまなバージョンを作成するために使用しようとしています。この比較関数の 1 つのバージョンを以下に示します。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)
。さらにコンテキストが必要な場合はお知らせください。前述のとおり、これはコードの要点です。