在python3中执行此操作是否有效?
if request_link(requested_domain, requested_link) is not None
domain_res, link_res, r_res = request_link(requested_domain, requested_link)
parse_results(domain_res, r_res)
这是否意味着解释器会两次查看同一个函数?
有效吗?如果没有,检查函数是否返回并对结果起作用的更好方法是什么?
谢谢你!答案 0 :(得分:1)
命名结果?
ret_value = request_link(requested_domain, requested_link)
if ret_value is not None
domain_res, link_res, r_res = ret_value
parse_results(domain_res, r_res)
答案 1 :(得分:1)
将返回值传递给变量似乎是最快且最自然的方式。非常感谢!
案件结案! :)
顺便说一句,wtf符合那些质量要求?!我不能只说什么解决了问题并感谢人们?!我已经提出了所有帮助我的答案。
答案 2 :(得分:0)
也许只是将返回结果存储在if语句之前:
res = request_link(requested_domain, requested_link)
如果res不是None: domain_res,link_res,r_res = res parse_results(domain_res,r_res)
答案 3 :(得分:0)
在我看来,你调用了两次相同的函数,可能它效率不高,除非python神奇地检测到你之前调用了这个函数并保留输出以防止重复调用。 从我看到的,它的声音你的request_link函数返回一个None或一个包含domain_res,link_res,r_res的列表,但如果我想这样做,我会按如下方式执行:
def request_link(requested_domain, requested_link):
...
if desired_otput:
return True,domain_res, link_res, r_res
else:
return False, None, None, None
然后在主函数中:
result = request_link(requested_domain, requested_link)
if result[0]:# this means that results are not none
#do what you want with result[1], result[2] , result[3]
这是您不必两次调用该功能的方式