首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python 递归函数返回值None 的解决办法

在使用 Python 开发的过程中,避免不了会用到递归函数递归函数返回值有时会出现意想不到的情况。 下面来举一个例子: >>> def fun(i): ... ...return i ... >>> r = fun(0) >>> print(r) 比如上面这段代码,乍一看没什么问题,返回值并不是我们期望的 5,而是 None。...>>> print(r) None 要解决这个问题也简单,就是在执行递归调用的时候,加上 return 语句。 修改之后的代码如下: >>> def fun(i): ... ...最后补充一句,如果想要了解这背后深层的原理,可以看看函数调用栈相关的资料,这里就不过多介绍了。 本文就到这里了,如果觉得有用的话欢迎点赞,转发和关注,谢谢。...面试题汇总: 包括 Python、Go、Redis、MySQL、Kafka、数据结构、算法、编程、网络等各种常考题。

67600

Python函数 ④ ( 函数 None 返回值 | None 值应用场景 | 用于 if 判断 | 定义无初始内容变量 | 代码示例 )

一、函数 None 返回值 1、空返回值Python 函数中 , return 返回值是可选的 , 函数可以没有返回值 ; def 函数名(函数参数): """函数文档字符串(可选)"""...# 函数体 # return 返回值 (可选) Python 函数中没有显示定义返回值 , 那么返回的就是 特殊字面量 None , 其类型是 ; None...- 接收 None 返回值 下面的代码中 , hello 函数没有使用 return 关键字 返回 返回值 ; 该 hello 函数 没有显示定义 返回值 , 实际上该函数返回的是 None 返回值...; 使用变量接收函数返回值 , 返回值None , 返回值类型是 NoneType ; 代码示例 : """ 接收 函数 None 返回值示例 """ # 定义无返回值函数 def hello...return 关键字返回 None 在该示例中 , 比上一个示例多了 return None 返回值 , 其执行效果与没有返回值一模一样 ; 代码示例 : """ 接收 函数 None 返回值示例 ""

33220
您找到你想要的搜索结果了吗?
是的
没有找到

Python知识梳理

数据类型 我们可以使用type()函数类获取对象的类型,Python3中内置数据类型包括:None,int,float,complex,str,list,dict,tuple,set,frozenset...类型转换 Python中类型转换只需调用相关函数即可 ---- 函数 # 函数定义模板 def func_name([self,][args]): pass def say_hello():...定义多返回值函数 # 多返回值函数,返回一个tuple对象 def multi_returns(): return 0,1 内置函数 Python中有许多内置函数: dir 我们可以使用dir...*args 与 **kvargs *args和**kvargs都用于函数接收多个参数,这里args和kvargs只是约定俗成的写法,可以换成其它的名称,*和**则是必须的。...---- 三元运算符 ? 面向对象 Python中一切皆对象(这句话理解起来并不是那么容易),包括函数(C#,JAVA中函数不能独立存在)。

97220

python笔记24-unittest单元测试之mock.patch

前言 上一篇python笔记23-unittest单元测试之mock对mock已经有初步的认识, 本篇继续介绍mock里面另一种实现方式,patch装饰器的使用,patch() 作为函数装饰器,为您创建模拟并将其传递到装饰函数...官方文档地址:https://docs.python.org/3/library/unittest.mock.html#the-patchers patch简介 1.unittest.mock.patch...(target,new = DEFAULT,spec = None,create = False,spec_set = None,autospec = None,new_callable = None,...函数案例讲解 1.接着上一篇python笔记23-unittest单元测试之mock,新建一个temple.py,写入以下代码 # 保存为temple.py # coding:utf-8 # 作者:上海...'''测试支付成功场景''' a = mock_Zhifu.return_value # 先返回实例,对类名称替换 # 通过实例调用方法,再对方法的返回值替换

1.2K30

开发神技能 | Python Mock 的入门

import mock 从Python 3.3开始,mock模块已经被合并到标准库中,被命为unittest.mock,可以直接import进来使用: from unittest import mock...Mock类的定义如下: class Mock(spec=None, side_effect=None, return_value=DEFAULT, wraps=None, name=None, spec_set...=None, **kwargs) 这里给出这个定义只是要说明下Mock对象其实就是个Python类而已,当然,它内部的实现是很巧妙的,有兴趣的可以去看mock模块的代码。...side_effect: 这个参数指向一个可调用对象,一般就是函数。当mock对象被调用时,如果该函数返回值不是DEFAULT时,那么以该函数返回值作为mock对象调用的返回值。...https://docs.python.org/3.4/library/unittest.mock-examples.html https://docs.python.org/3.4/library/

1.5K90

如何理解python报错信息_csb报错

1)cmp指定一个定制的比较函数,这个函数接收两个参数(iterable的元素),如果第一个参数小于第二个参数,返回一个负数;如果第一个参数等于第二个参数,返回零;如果第一个参数大于第二个参数,返回一个正数...默认值为None。 2)key指定一个接收一个参数的函数,这个函数用于从每个元素中提取一个用于比较的关键字。默认值为None。 3)reverse是一个布尔值。...key参数的值应该是一个函数,这个函数接收一个参数并且返回一个用于比较的关键字。对复杂对象的比较通常是使用对象的切片作为关键字。...的教程,而实际使用是Python3 reduce函数Python3版本被移除了,不属于内建函数了,因为放进functools模块,所以需要导出 8 FileNotFoundError: [Errno...2] No such file or directory: ‘D:\Python\Unittest\resultHtmlFile/2019-08-2715-59-13test_result.html’

1.3K30

开发神技能 | Python Mock 的入门

import mock 从Python 3.3开始,mock模块已经被合并到标准库中,被命为unittest.mock,可以直接import进来使用: from unittest import mock...Mock类的定义如下: class Mock(spec=None, side_effect=None, return_value=DEFAULT, wraps=None, name=None, spec_set...=None, **kwargs) 这里给出这个定义只是要说明下Mock对象其实就是个Python类而已,当然,它内部的实现是很巧妙的,有兴趣的可以去看mock模块的代码。...· side_effect: 这个参数指向一个可调用对象,一般就是函数。当mock对象被调用时,如果该函数返回值不是DEFAULT时,那么以该函数返回值作为mock对象调用的返回值。...· https://docs.python.org/3.4/library/unittest.mock-examples.html · https://docs.python.org/3.4/library

85630

Python 3.8.0 正式版发布,新特性初体验

赋值表达式 PEP 572: Assignment Expressions 新增一种新语法形式::=,又称为“海象运算符”(为什么叫海象,看看这两个符号像不像颜表情),如果你用过 Go 语言,应该对这个语法非常熟悉...下面是在列表表达式中的用法: filtered_data = [y for x in data if (y := func(x)) is not None] 强制位置参数 PEP 570: Python...C 代码实现的内置函数中类似功能,比如内置函数 len('string') 传参是不能使用关键字参数的。...Asyncio 异步交互模式 在之前版本的 Python 交互模式中(REPL),涉及到 Asyncio 异步函数,通常需要使用 asyncio.run(func()) 才能执行。...这两个装饰器一定非常熟悉,它们是内置 @property 装饰器的加强版,被装饰的实例方法不仅变成了属性调用,还会自动缓存方法的返回值

41620

pytest的fixture怎么用?

fixture和unittest是冲突的。舍弃unittest只用pytest。 会遇到在很多用例当中,它的前置条件是长得一样的。用例写的越来越多的时候,肯定会遇到前置条件都差不多,大家差距不是很大。...在unittest中,它是两个都分开的,一个是setUp,一个是tearDown,我们会定义两个函数。 在pytest中,只要一个函数就可以了。...在TeatCase目录下,新建一个Python文件,文件名固定是:conftest。 ? 这个文件就是个公有化的文件。 conftest文件必须和测试用例放在一起,和测试用例文件是同级。...") class TestLogin: # 正常用例 - 登陆成功 #fixture的函数名称,用来接收它的返回值 @pytest.mark.smoke def test_login..._2_success(self,access_web):#fixture的函数名称作为用例参数,用来接收fixture的返回值 logging.info("****登陆用例:正常场景:适用正确的用户名和密码登陆

76620

GET/POST 请求区别详解(接口测试实战)

最终选定 python 作为脚本开发语言,使用其自带的 requests 和 urllib 模块进行接口请求,使用优化后的 unittest 测试框架编写测试接口函数,测试结果选用 HTMLTestRunner...2、测试框架优化 unittestpython 中进行单元测试使用广泛的框架,其与 java 中的单元测试框架junit 类似。...该框架使用简单,需要编写以 test 开头的函数,选择 unittest 框架运行测试函数,测试结果在终端显示。...接着在 test_jiafa 方法中,我们对刚才 jiafa 函数进行了和值校验。通过给 jiafa 输入两个值,获取其函数返回值,并与真实值做相等判断,以此实现函数单元测试。...这里用到了 unittest 中断言值相等的 assertEqual(m, n)函数,上述代码运行结果如下: Ran 1 test in 0.000s OK 以上是 unittest 框架最基本的单元测试应用

3.6K00

python unittest关键API说明及示例

前言 本次就python unittest单元测试框架的一些基本的、常用的API 进行分享,以便大家后续更深入的熟悉和应用unittest。...下面我们一起看一下定义在TestCase类中常用的方法 setUp() 初始化函数,在所有的测试方法调用之前调用(自动调用) tearDown() 清理函数,在所有的测试方法调用之后调用(自动调用) setUpClass...() 类初始化方法,在单个类中的所有测试方法调用之前调用 tearDownClass() 类清理方法,在单个类中的所有测试方法调用之后调用 run(result=None) 运行测试,并返回测试结果(返回值为对象...reason) 在测试方法或setUp调用该方法可跳过当前测试 debug() 以不采集测试结果方式运行测试 shortDescription() 返回一行描述的测试结果信息 TestSuite类API 在python...addTest() 新增一个测试方法到套件中 addTests() 新增多个测试方法到套件中 run() 运行套件中关联的测试方法,并返回测试结果(返回值为测试结果对象) debug() 运行套件中关联的测试方法

81070

Python 自动化测试框架unittest与pytest的区别

引言   前面一篇文章Python单元测试框架介绍已经介绍了python单元测试框架,大家平时经常使用的是unittest,因为它比较基础,并且可以进行二次开发,如果你的开发水平很高,集成开发自动化测试平台也是可以的...# 所有用例执行前执行 def setUp(self) -> None: print("setUp开始") def tearDown(self) -> None...类似unittest的cls装饰器   3.函数级:只对函数生效,类下面的函数不生效。   ...("参数名",列表数据) 参数名:用来接收每一项数据,并作为测试用例的参数。...与pytest测试框架的区别,七大主要区别,这里已讲了两个区别的实例,其他五个有时间再补充,如对python自动化测试感兴趣的朋友,可以加入左下方学习交流群,讨论交流一下心得。

99120

Python 知识点总结篇(1)

, x); 字符串str; 元祖tuple; 可变类型:内存中数据可修改; 列表list; 字典dict; 变量命名规则: 只能是一个词; 只能包含字母、数字和下划线; 不能以数字开头; 运算符.../usr/bin/python3 运算符优先级 Python保留字 数据类型转换 正负无穷 float('inf') #正无穷 float('-inf') #负无穷 利用inf乘以...None值,表示没有值,是NoneType数据类型的唯一值,print()的返回值即为None, >>> spam = print('hello') hello >>> None == spam True...函数三大优点 代码重用; 保持一致性; 可扩展性; 过程:过程就是简单特殊无返回值函数函数返回值返回值数 = 0:返回None返回值数 = 1:返回object; 返回值数...,使用+=不是进行相加再赋值的操作,本质上是调用列表的extend方法; 缺省参数注意点 缺省参数的定义位置在参数列表末尾; 若由多个缺省参数,需要指定参数名; 多值参数 参数前有一个*可接收元祖

62610

Python: 调试代码和单元测试

比如对函数abs(),我们可以编写出以下几个测试用例: 输入正数,比如1、1.2、0.99,期待返回值与输入相同; 输入负数,比如-1、-1.2、-0.99,期待返回值与输入相反; 输入0,期待返回0;...输入非数值类型,比如None、[]、{},期待抛出TypeError。...(1) 如果单元测试通过,说明我们测试的这个函数能够正常工作;如果单元测试不通过,要么函数有bug,要么测试条件输入不正确。总之,需要修复使单元测试能够通过。...如果通过,说明我们的修改不会对abs()函数原有的行为造成影响;如果测试不通过,说明我们的修改与原有行为不一致,要么修改函数代码,要么修改测试代码。...4.1 单元测试的特殊方法 为了编写单元测试,我们需要引入Python自带的unittest模块。在unittest模块中,有以下几个常用的方法。

78210

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券