python - 提前应用带有目标函数 args 的函数,并获取要应用于该目标函数的返回结果
问题描述
我现在用我试图解决的实际情况更新了这篇文章。我正在使用插件和库Flask
构建 RESTful api 以使用. 例如,这段代码说明了使用有关用户权限和不记名令牌的信息进行授权的 RPC 请求。flask-restful
pika
RabbitMQ
def request_authz(self, metadata):
"""
For an RPC request, the RCP client sends a message with two
properties (i.e. `reply_to` and `correlation_id`) set to its
callback queue
"""
self.response = None
self.correlation_id = str(uuid.uuid4())
props = pika.BasicProperties(reply_to=self.callback_queue,
correlation_id=self.correlation_id)
self.channel.basic_publish(exchange=AMQP_EXCHANGE,
routing_key=BINDING_STATISTICS,
body=json.loads(s=metadata),
properties=props)
while self.response is None:
self.conn_broker.process_data_events()
return self.response
这段代码说明了一个POST
API 端点,用于在授权被批准但尚未实现后访问资源。那metadata
应该是从 this 获得的参数request
。
def post(self):
items = info(args=request.get_json()['params'])
return {'data': items}
我想确保所有 api 都应该通过request_authz
. 换句话说,所有 api 都应该被response
返回request_authz
,表明它是否被授权。如何以 pythonic 方式执行此操作(例如使用装饰器)?
解决方案
您可以将print
s 报告给单个函数:
def util(value):
if value > 0:
return True
else:
return False
def check_value(value, value_type):
if util(value):
print('%s is %s' % (value_type, str(value)))
else:
print('%s must be positive' % value_type)
def func1(value):
check_value(value, 'perimeter')
def func2(value):
check_value(value, 'area')
此外,util
函数可以简化为:
def util(value):
return value > 0
推荐阅读
- python - 为什么在 python 脚本结束后环境变量会被删除?
- angular - 包含动态加载组件的组件的单元测试
- android - 是否有任何框架/程序可以通过代码控制 Android 模拟器?
- c++ - Ld Undefined reference to * 当从程序集中调用 c++ 函数时
- r - 我将如何重复此模拟 1000 次以获得可以从中取平均值的列表输出?
- react-native - 如何在 React Native 中拖动以扩展和调整动画视图的大小
- sql - 具有多列的 SQL GROUP BY 和 COUNT
- python - 从字典键中删除值的问题
- python - Google colab 到 neo4j 数据库连接错误:服务不可用
- c# - 如何初始化规则表达式类