Pythonでは、私は、レガシーモジュールを持っているUtils
とlegacy
、このような方法を、:
@staticmethod
def legacy(users, some_data, other_data):
j=0
for _ in users.keys():
do_something([{'a': some_data[j], 'b': other_data[j]}])
j=j+1
私は新しいロジック書いているusers
とsome_data
存在し、other_data
存在しませんが。
私ができるように、ジェネレーター/モックメソッドを渡すことを考えています:
Utils.legacy(users, some_data, magic)
{'b': magic[j]}
特定のを与えられたセットj
。
magic
usingジェネレーター/モックを実装する方法はありますか?
ノート:
dict
、ユーザーのサイズを渡すことで解決できますが、より一般的な解決策を探しています。必要なのは__getitem__
、引数に制約を課さないメソッドを持つクラスだけです。
class Foo(object):
def __getitem__(self, key):
pass
Utils.legacy(users, some_data, Foo())
交換するpass
とreturn foo
どのようなプレースホルダ要素のためにfoo
あなたがしたいと思います。
または、考え直して、を使用しますcollections.defaultdict
。
from collections import defaultdict
Utils.legacy(users, some_data, defaultdict(lambda: None))
(または、他のゼロ引数関数を使用して、代わりにデフォルト値を指定しますlambda: None
。)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加