5

以下は、私のコードを大幅に簡略化したバージョンです。その後、__init__()いくつかの機能があります。

クラスで以前に作成された関数を参照するfunctools.partial基本関数のさまざまなバージョンを作成するために使用しようとしています。この比較関数の 1 つのバージョンを以下に示します。comparisoncalculationgrade_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 definedself論理的と思われる多くの組み合わせを追加しようとしました - 以下にその一例を示します。

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)。さらにコンテキストが必要な場合はお知らせください。前述のとおり、これはコードの要点です。

4

1 に答える 1