私はキャッシュとして機能するキー値ストアであるexoredisを使用しています。 キーがすでに存在しない場合は、キーの値を設定するメソッドget_or_set
があります。ここでpython - 関数オブジェクトを期待する引数を渡す
exoredis.get_or_set('my_new_key', 'my new value')
、my new value
も同様に文字列を返す呼び出し可能になります1つの引数 "pk
" を受け入れるように私の場合は
exoredis.get_or_set('some-timestamp-key', datetime.datetime.now)
、私の呼び出し可能なニーズ:
def get_gender(pk):
return Users.objects.filter(pk=pk).gender
この関数を呼び出し元として渡すにはどうすればよいですか? これは私のTypeError
私の関数が1つの引数を期待していると言ってくれます。
pk = request.user.id
print exoredis.get_or_set("gender:%s"%pk, get_gender)
TypeError: get_gender() takes exactly 1 argument (0 given)
これはたびに機能を実行する(それが実行された場合には):
引数を取らないラムダ関数でpk = request.user.id
print exoredis.get_or_set("gender:%s"%pk, get_gender(pk))
あなたの質問は何ですか? – Duncan
完全なTracebackを投稿できますか? – syntonym
'get_gender'を最終的に呼び出されるときに' pk'の現在の値で呼び出すようにしますか? **または**あなたが 'exoredis.get_or_set'に渡したときに' pk'が持っていた値で呼び出されたいのですか? –