Проверьте, не возвращен ли None - PullRequest
0 голосов
/ 19 мая 2018

Эффективно ли это делать в 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)

Означает ли это, что интерпретатор будет дважды просматривать одну и ту же функцию?

Эффективно ли это?Если нет, то как лучше проверить, не возвращает ли функция ничего и повлияет ли на результат?

спасибо!

Ответы [ 4 ]

0 голосов
/ 19 мая 2018

Передача возврата в переменную представляется наиболее быстрым и естественным способом.Большое спасибо!

Дело закрыто!:) 1003

Кстати, с этими требованиями к качеству ?!Разве я не могу просто сказать, что решило проблему, и поблагодарить людей ?!Я проголосовал за все ответы, которые мне помогли.

0 голосов
/ 19 мая 2018

Может быть, просто сохранить результат возврата перед оператором if:

res = request_link(requested_domain, requested_link) 

, если res не None: domain_res, link_res, r_res = res parse_results (domain_res, r_res)

0 голосов
/ 19 мая 2018

, по моему мнению, вы вызывали одну и ту же функцию дважды, и, вероятно, она неэффективна, если 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]

так вам не придется вызывать функцию дважды

0 голосов
/ 19 мая 2018

Назовите результат?

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)
...