1

同じオブジェクトを介していくつかの異なる関数を呼び出すこともできるオブジェクト関数を呼び出そうとしています:

例:sort()、facet()、exclude()は、引数が異なる関数であり、条件としてsort_flag、facet_flag、exclude_flagがtrueまたはfalseに設定されています。

次のように呼び出すことができます:

si = sunburnt.SolrInterface("url","schema.xml")
response = si.query(arg1).facet(arg2).sort(arg3).exclude(arg4)

これらの関数をすべて同時に呼び出す必要がない場合や、これらの関数を呼び出すためのすべての引数がない場合、またはその逆の場合があります。そのような状況で、si.facet(args).sort(args)を次のように呼び出すにはどうすればよいですか。

if sort_flag:
  --append sort function to the query
if exclude_flag:
  -- append exclude function

getattrを使用してこれを行う代わりの方法もありますが、関数の引数を使用して使用すると混乱すると同時に、多くのif checkステートメントが生成される可能性があります(3つの階乗ステートメントに近い3つのフラグの場合)

4

1 に答える 1

1

私はあなたを理解したかどうかわかりませんが、あなたはこれを行うことができませんか?

si = sunburnt.SolrInterface("url","schema.xml")
query = si.query(arg1).facet(arg2)

if sort_flag:
  query = query.sort(arg3)
if exclude_flag:
  query = query.exclude(arg4)

response = query.execute()
于 2013-02-26T10:30:34.370 に答える