私はPython 3.5です:ファンクションデコレータはdefの最初の2行を指定しますか?
私はいくつかの私のpythonの機能で繰り返しパターンを持っています。クラスの大規模なコレクションのために最初の2行は、次のとおりです。私はここでそれを簡素化するんだけど、obj_a
とobj_b
を得るプロセスが1つのライナーではありません
obj_a = <..... obtain something I need.....>
obj_b = <..... obtain another thing I need....>
...私はこれを繰り返す避けたいですobj_a
とobj_b
を得るためにどこにでもutilの機能よりも洗練された方法でコード(例えばobj_a = getObjectA()
...)
それらの行を取ると私は何かを持っている機能のデコレータの一部としてそれらを配置する方法はありますlike:
@function_where_I_need_my_objects
def foo:
<....do something with obj_a and obj_b already initialized....>
私は、これらのオブジェクトを実行ごとに1回ではなくコマンドで生成する必要があると考えています。それ以外の場合は、関数へのオプションの引数を使用することができます。 –
あなたはその前提について正しいです。ありがとう。 – JasonGenX
デコレータを使用して、最初の行または関数の2つを定義するのではなく、細い空気の中にそれらを存在させたいのですか?もっとたくさんある場合は、2つの関数があるかもしれませんが、そうでなければ、あなたは 'a'と' b'は何も持っていないので、あなたが示唆している方法で動作するコードは読みにくいと思いますとにかく存在します。 –