Python 2.7 コールバック関数を正しく使用する方法を知りたいです。
私のコードには、Cherrypy 認証の例からのコールバック関数がいくつかあります。
(これらのコールバックは、ログインしているユーザーがグループに属しているかどうかに応じて、True または False に評価できる関数を返します。)
次のようなコードを書いた場合、コールバックが実行されるかどうか疑問に思います。
ライブラリからの定義を考えると:
def member_of(groupname):
def check():
if groupname == 'admin':
if cherrypy.request.login == 'joe':
return True
if cherrypy.request.login == 'toni':
return True
return False
return False
# .... (other groups checked in the same way)
return check # returns a callback function from my understanding?
コードでコールバックを適用して実行するにはどうすればよいですか?
次のように言えば:
if member_of('admin'):
do_something()
else:
do_something_else()
これにより、コールバックが実行され、管理者グループがチェックされますか? または、「member_of」の値が関数定義であり、関数定義がおそらく常に「True」値 (または False 値) であるかどうかを調べますが、実行する必要があるため、両方が間違っています。
これについて教えてもらえますか?コールバックが確実に実行されるようにするにはどうすればよいですか? そのまま渡すにはどうすればいいですか?