python中none是什么类型_如何在Python中”测试”None类型?
我有一个方法,它有时返回一个非类型的值。那么我怎样才能质疑一个非类型的变量呢?例如,我需要使用if方法
if not new:
new = '#'
我知道这是错误的方式,我希望你理解我的意思。
我想这是在这里回答的,显然是在以前的某个地方。
如果您的方法返回的值只有bool(returnValue)等于False,那么if not new:应该可以正常工作。这有时发生在内置libs中——例如,re.match返回none或truthy match对象。
也可以在这里看到我关于python中的null和None的答案。
So how can I question a variable that is a NoneType?
使用is运算符,如下所示
if variable is None:
为什么会这样?
由于None是python中NoneType唯一的单例对象,所以我们可以使用is操作符来检查变量中是否有None。
引用is号文件,
The operators is and is not test for object identity: x is y is true if and only if x and y are the same object. x is not y yields the inverse truth value.
由于只有一个None实例,因此is是检查None的首选方法。
从马嘴里听到
引用了python的编码风格指南-pep-008(由guido自己共同定义)。
Comparisons to singletons like None should always be done with is or is not, never the equality operators.
if variable is None:
...
if variable is not None:
...
根据亚历克斯·霍尔的回答,也可以用isinstance来完成:
>>> NoneType = type(None)
>>> x = None
>>> type(x) == NoneType
True
>>> isinstance(x, NoneType)
True
isinstance也是直观的,但其复杂之处在于,它需要一条线。
NoneType = type(None)
这对于像int和float这样的类型是不需要的。
由于你不能将NoneType分为子类,由于None是单体,因此不应使用isinstance来检测None,而应按照公认的答案进行,并使用is None或is not None。
不在python3.6.7上工作
正如亚伦希尔的命令所指出的:
Since you can't subclass NoneType and since None is a singleton, isinstance should not be used to detect None - instead you should do as the accepted answer says, and use is None or is not None.
原始答案:
然而,最简单的方法是,除了豆蔻的答案之外,如果没有额外的行,可能是:isinstance(x, type(None))
So how can I question a variable that is a NoneType? I need to use if method
使用isinstance()不需要if语句中的is:
if isinstance(x, type(None)):
#do stuff
附加信息您还可以在一个isinstance()语句中检查多个类型,如文档中所述。只需将类型编写为元组即可。
isinstance(x, (type(None), bytes))
由于你不能将NoneType分为子类,由于None是单体,因此不应使用isinstance来检测None,而应按照公认的答案进行,并使用is None或is not None。
这个答案对python 3.6.7很有用。
Python 2.7:
x = None
isinstance(x, type(None))
或
isinstance(None, type(None))
=真
由于你不能将NoneType分为子类,由于None是单体,因此不应使用isinstance来检测None,而应按照公认的答案进行,并使用is None或is not None。
哦,好吧!谢谢!
希望这个例子对您有所帮助)
print(type(None) # NoneType
所以,您可以检查变量名的类型
#Example
name = 12 # name = None
if type(name) != type(None):
print(name)
else:
print("Can't find name")
不确定这是否回答了问题。但我知道我花了一段时间才弄明白。我在浏览一个网站,突然作者的名字不在了。所以需要一个支票声明。
if type(author) == type(None):
my if body
else:
my else body
在这种情况下,author可以是任何变量,None可以是您要检查的任何类型。
由于None是单体的,所以不应使用type来检测None—而是应按照公认的答案进行,并使用is None或is not None。
python中none是什么类型_如何在Python中”测试”None类型?相关推荐
- python指定返回类型_如何在python中指定方法返回类型列表 - python
假设我有一个类似下面的方法 def validate(self, item:dict, attrs:dict)-> list: 如果我想更具体一点,告诉我我的返回类型是 验证消息? 我应该如何实 ...
- python中用什么函数读取字符串_如何在Python中获得函数名作为字符串?
在Python中,如何在不调用函数的情况下以字符串的形式获得函数名? 1 2 3 4def my_function(): pass print get_function_name_as_string( ...
- python set 排序_python set 排序_如何在Python中使用sorted()和sort()
点击"蓝字"关注我们 ?"Python基础知识" 大卫·丰达科夫斯基 著 18财税3班 李潇潇 译 日期:2019年5月6日 一. 使用sorted() ...
- python中用于绘制各种图形_如何在Python绘制图形
如何在Python绘制图形 Python提供了一种最流行的绘图库,称为Matplotlib.它是开源的,跨平台的,可以根据数组中的数据制作2D图.它通常用于数据可视化并通过各种图形表示. Matplo ...
- python如何定义一个空变量_如何在python中定义自由变量? - python
python doc中的本地/全局/自由变量定义: 如果名称绑定在块中,则除非声明为非本地,否则它是该块的局部变量.如果在模块级别绑定了名称,则该名称为全局变量. (模块代码块的变量是局部变量和全局变 ...
- python中的import详解_如何在python中import
用法 1.import同一个路径下的.py文件. 这是import关键字最基本的用法,import moudle1可以理解为直接将module1.py的语句复制到对应的代码段. 2.import pa ...
- python打印多个变量名_如何在Python中打印单个和多个变量?
请考虑下面Python 2.x中的两个Python代码片段.# Code 1 print 1 # Output: 1# Code 2 print(1) # Output: 1 在Python 2.X中 ...
- win7如何更改文件类型_如何在win10中使用云笔记软件来做pdf手写笔记或绘图? - 敬业签便签...
Win10是现在很多职场办公人士和笔记本电脑用户所使用的操作系统,其界面更为简洁,功能也更为强大.和Windows之前所发布的经典Win7系统一样,在Win10系统电脑上也可以下载安装很多好用的工具软 ...
- python一行输出多个数据_如何在Python中让两个print()函数的输出打印在一行内?
1.两个连续的print()函数为什么在输出时内容会分行显示? 解:print()中有两个默认参数sep和end,其中sep是代替分隔符,end是代替末尾的换行符,默认使用','代替空格,且默认末尾加 ...
最新文章
- php获得帮助类数据_PHP解析xml格式数据工具类示例
- (七)Docker网络配置
- line-height 属性
- [转载]针对IIS7以上的ASP.NET网站自定义错误页面与异常日志总结
- 深入搜索引擎的关键——索引
- android viewflipper 动态加载,Android开发之ViewFlipper自动播放图片功能实现方法示例...
- 正版操作系统下载大全
- eNSP配置VLAN间路由
- Android APK安装后资源文件(res/assets)位置
- 400+条实用C/C++框架、库、工具整理 ,你能想到的都在这里了
- 万里汇WorldFirst提现人民币实现当天到账!
- 芯片开发流程对应的三大EDA厂商工具
- 大数据分析过程是如何的
- ZY Player 2.3.5 中文版 (全网视频播放器)
- VS2010向工具箱中添加控件解决 Microsoft Communications Control,未能实例化 设计时授权
- 百万投资血本无归,细数外汇资金盘《云腾科技》的八宗罪
- 魔法宝石(类似dp 杭电排位赛-2)
- HoloLens2的vuforia模型识别
- 神话造词——了解单词的起源及演变如何能帮我们更好地记单词
- 网吧2023:热闹回来了,电竞战歌起
热门文章
- Docker 方式安装 zipkin (linux 、阿里云ECS上安装)
- Docker 方式安装 RabbitMQ (ribbitmq linux 部署)
- 同名的const 成员函数
- [原创]Enterprise Architecture V7.5 C++代码生成时,头文件中函数声明没有注释,CPP中函数定义却有注释。...
- 程序员必知8大排序3大查找(一)
- Protocol Buffer 序列化
- 树莓派基金会来号召用键盘生物学家研究企鹅
- ASP 代码当前记录集不支持更新问题的解决办法。
- MySQL5.7 group by新特性,报错1055
- 基础、语法都不是最重要的,学Python最重要的是什么?编程思路!