当前位置: 首页 > news >正文

递归函数中,return的误区

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

return语句用于退出函数的,向调用方返回一个表达式。

return在不带参数的情况下(或者没有写return语句),默认返回None。

None是一个特殊的值,它的数据类型是NoneType。NoneType是Python的特殊类型,它只有一个取值None。 它不支持任何运算也没有任何内建方法,和任何其他的数据类型比较是否相等时永远返回false,也可以将None赋值给任何变量。。。

1》当函数没有显式return,默认返回None值

2》当递归函数有return时,在递归的地方也要return,不然永远返回的是None

当递归函数有return时,在递归的地方也要return,不然永远返回的是None

当递归函数有return时,在递归的地方也要return,不然永远返回的是None

    def parse_url(self, url, *args, **kwargs):
        """处理URL请求"""
        proxies = {'https': re.sub("http","https",self.get_ip.get_proxies())}
        print(proxies)
        try:
            response = self.parse.get(url, headers=self.headers, proxies=proxies, timeout=5)
        except:
            return self.parse_url(url)   #<----这里,报错的话实现递归操作了,需要return
        else:
            # print(response.text)
            if str(response.status_code) != "200":
                return self.parse_url(url)   #<----这里,满足条件的话实现递归操作了,需要return
            elif str(response.status_code) == "200" and "抱歉!页面无法访问" in response.text:
                return self.parse_url(url)   #<----这里,满足条件的话实现递归操作了,需要return
            else:
                print("这里是内部response   {}".format(response))
                return response  # < --- 最后返回的值!!

必须注意的是!!!当递归函数有return时,在递归的地方也要return,不然永远返回的是None 当递归函数有return时,在递归的地方也要return,不然永远返回的是None 当递归函数有return时,在递归的地方也要return,不然永远返回的是None 当递归函数有return时,在递归的地方也要return,不然永远返回的是None 当递归函数有return时,在递归的地方也要return,不然永远返回的是None 当递归函数有return时,在递归的地方也要return,不然永远返回的是None 当递归函数有return时,在递归的地方也要return,不然永远返回的是None

转载于:https://my.oschina.net/u/3826227/blog/1826721

相关文章:

  • vagrant 本地添加box 支持带版本号
  • ES6:解构赋值
  • 百度,内容质量部面试(一面+二面)面经
  • 浅谈Redis五种数据结构的底层原理
  • 程序清单4.2_praise1.c程序_《C Primer Plus》P62
  • ES6进阶——01新版变量声明let和const
  • hbase(二)hfile结构
  • 第五天,复习第四天内容,购物车小程序作业.元组
  • Nginx访问日志、日志切割、静态文件不记录日志和过期时间
  • 十七、编辑头像(带参数)
  • 完全检查点 (normal checkpoint)
  • name 'admin' is not defined第一个问题,新建Django项目,运行时报错
  • zxing 扫一扫 实用工具效率很高
  • Wireshark抓包工具使用
  • Android性能优化之APK瘦身详解(瘦身73%)
  • 「面试题」如何实现一个圣杯布局?
  • 【跃迁之路】【733天】程序员高效学习方法论探索系列(实验阶段490-2019.2.23)...
  • CentOS6 编译安装 redis-3.2.3
  • Django 博客开发教程 16 - 统计文章阅读量
  • ES6简单总结(搭配简单的讲解和小案例)
  • IDEA 插件开发入门教程
  • IDEA常用插件整理
  • iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码...
  • Leetcode 27 Remove Element
  • niucms就是以城市为分割单位,在上面 小区/乡村/同城论坛+58+团购
  • PHP 7 修改了什么呢 -- 2
  • Python中eval与exec的使用及区别
  • SegmentFault 2015 Top Rank
  • 基于OpenResty的Lua Web框架lor0.0.2预览版发布
  • 前端性能优化--懒加载和预加载
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 用简单代码看卷积组块发展
  • 责任链模式的两种实现
  • 智能合约开发环境搭建及Hello World合约
  • 看到一个关于网页设计的文章分享过来!大家看看!
  • 06-01 点餐小程序前台界面搭建
  • 没有任何编程基础可以直接学习python语言吗?学会后能够做什么? ...
  • 你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
  • # centos7下FFmpeg环境部署记录
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • (1)bark-ml
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (仿QQ聊天消息列表加载)wp7 listbox 列表项逐一加载的一种实现方式,以及加入渐显动画...
  • (附源码)python旅游推荐系统 毕业设计 250623
  • (六) ES6 新特性 —— 迭代器(iterator)
  • (十五)Flask覆写wsgi_app函数实现自定义中间件
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢?
  • .NET开源全面方便的第三方登录组件集合 - MrHuo.OAuth
  • .NET性能优化(文摘)
  • @Controller和@RestController的区别?
  • @Responsebody与@RequestBody
  • [BUUCTF]-PWN:[极客大挑战 2019]Not Bad解析
  • [Django 0-1] Core.Checks 模块
  • [docker] Docker容器服务更新与发现之consul