国内现货交易平台怎么做视频网站的seo
国内现货交易平台,怎么做视频网站的seo,有域名之后怎样进行网站建设,360建筑网上怎么删除投递信息None是python中的特殊存在。作为函数#xff0c;在用到返回值的经常使用。今天小编就来讲讲None作为函数返回值时#xff0c;会出现的三种情况。
一、作为操作类函数的默认返回值
当某个操作类函数不需要任何返回值时#xff0c;通常就会返回 None。同时#xff0c;None 也…None是python中的特殊存在。作为函数在用到返回值的经常使用。今天小编就来讲讲None作为函数返回值时会出现的三种情况。
一、作为操作类函数的默认返回值
当某个操作类函数不需要任何返回值时通常就会返回 None。同时None 也是不带任何 return 语句函数的默认返回值。
对于这种函数使用 None 是没有任何问题的标准库里的 list.append()、 os.chdir() 均属此类。
二、作为某些“意料之中”的可能没有的值
有一些函数它们的目的通常是去尝试性的做某件事情。视情况不同最终可能有结果也可能没有结果。而对调用方来说“没有结果”完全是意料之中的事情。对这类函数来说使用 None 作为“没结果”时的返回值也是合理的。
在 Python 标准库里正则表达式模块 re 下的 re.search、 re.match 函数均属于此类这两个函数在可以找到匹配结果时返回 re.Match 对象找不到时则返回 None。
三、作为调用失败时代表“错误结果”的值
有时 None 也会经常被我们用来作为函数调用失败时的默认返回值比如下面这个函数def create_user_from_name(username):
通过用户名创建一个 User 实例
if validate_username(username):
return User.from_username(username)
else:
return None
user create_user_from_name(username)
if user:
user.do_something()
当 username 不合法时函数 create_user_from_name 将会返回 None。但在这个场景下这样做其实并不好。
不过你也许会觉得这个函数完全合情合理甚至你会觉得它和我们提到的上一个“没有结果”时的用法非常相似。那么如何区分这两种不同情形呢关键在于函数签名名称与参数与 None 返回值之间是否存在一种“意料之中”的暗示。
让我解释一下每当你让函数返回 None 值时请仔细阅读函数名然后问自己一个问题假如我是该函数的使用者从这个名字来看“拿不到任何结果”是否是该函数名称含义里的一部分
分别用这两个函数来举例re.search()从函数名来看 search代表着从目标字符串里去搜索匹配结果而搜索行为一向是可能有也可能没有结果的所以该函数适合返回 None
create_user_from_name()从函数名来看代表基于一个名字来构建用户并不能读出一种 可能返回、可能不返回的含义。所以不适合返回 None
对于那些不能从函数名里读出 None 值暗示的函数来说有两种修改方式。第一种如果你坚持使用 None 返回值那么请修改函数的名称。比如可以将函数 create_user_from_name() 改名为 create_user_or_none()。
第二种方式则更常见的多用抛出异常raise Exception来代替 None 返回值。因为如果返回不了正常结果并非函数意义里的一部分这就代表着函数出现了“意料以外的状况”而这正是 Exceptions 异常 所掌管的领域。
使用异常改写后的例子class UnableToCreateUser(Exception):
当无法创建用户时抛出
def create_user_from_name(username):
通过用户名创建一个 User 实例
:raises: 当无法创建用户时抛出 UnableToCreateUserif validate_username(username):
return User.from_username(username)
else:
raise UnableToCreateUser(funable to create user from {username})
try:
user create_user_from_name(username)
except UnableToCreateUser:
# Error handling
else:
user.do_something()
与 None 返回值相比抛出异常除了拥有我们在上个场景提到的那些特点外还有一个额外的优势可以在异常信息里提供出现意料之外结果的原因这是只返回一个 None 值做不到的。
以上就是None作为函数返回值时会出现的三种情况。更多Python学习推荐:PyThon学习网教学中心。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/89455.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!