0

これら 2 つの方法をより効率的に 1 つに組み合わせるにはどうすればよいでしょうか?

構造は同じですが、パラメーター (「key_A」、「key_B」) とストレージ変数 (self.storage_a、self.storage_b) が異なります。

key_X をジェネリック メソッドへの入力にすることもできますが、self が既に渡されているときに self.storage_X を渡すのは面倒です。

def method_a(self):
    some_list = list(irrelevant_extraction_function('key_A', self.some_dict))
    self.storage_a = [item['address'] for item in some_list]

def method_b(self):
    some_list = list(irrelevant_extraction_function('key_B', self.some_dict))
    self.storage_b = [item['address'] for item in some_list]
4

3 に答える 3

3

独自のクラス内でストレージを辞書に結合する方が簡単かもしれません...

self.storage = {'key_A':[], 'key_B':[]}

では、ひとつの機能を使って……

def method(self, key):
    some_list = list(irrelevant_extraction_function(key, self.some_dict))
    self.storage[key] = [item['address'] for item in some_list]
于 2016-01-19T08:12:43.033 に答える
1

たぶん(未テスト)

def method(self, key):
    some_list = list(irrelevant_extraction_function(key, self.some_dict))
    setattr(self, 'storage_{}'.format(key.lower()[-1], [item['address'] for item in some_list])
于 2016-01-19T08:02:17.473 に答える