我有一个方法,它有时返回一个非类型的值。那么我怎样才能质疑一个非类型的变量呢?例如,我需要使用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类型?相关推荐

  1. python指定返回类型_如何在python中指定方法返回类型列表 - python

    假设我有一个类似下面的方法 def validate(self, item:dict, attrs:dict)-> list: 如果我想更具体一点,告诉我我的返回类型是 验证消息? 我应该如何实 ...

  2. python中用什么函数读取字符串_如何在Python中获得函数名作为字符串?

    在Python中,如何在不调用函数的情况下以字符串的形式获得函数名? 1 2 3 4def my_function(): pass print get_function_name_as_string( ...

  3. python set 排序_python set 排序_如何在Python中使用sorted()和sort()

    点击"蓝字"关注我们 ?"Python基础知识" 大卫·丰达科夫斯基  著 18财税3班 李潇潇    译 日期:2019年5月6日 一. 使用sorted() ...

  4. python中用于绘制各种图形_如何在Python绘制图形

    如何在Python绘制图形 Python提供了一种最流行的绘图库,称为Matplotlib.它是开源的,跨平台的,可以根据数组中的数据制作2D图.它通常用于数据可视化并通过各种图形表示. Matplo ...

  5. python如何定义一个空变量_如何在python中定义自由变量? - python

    python doc中的本地/全局/自由变量定义: 如果名称绑定在块中,则除非声明为非本地,否则它是该块的局部变量.如果在模块级别绑定了名称,则该名称为全局变量. (模块代码块的变量是局部变量和全局变 ...

  6. python中的import详解_如何在python中import

    用法 1.import同一个路径下的.py文件. 这是import关键字最基本的用法,import moudle1可以理解为直接将module1.py的语句复制到对应的代码段. 2.import pa ...

  7. python打印多个变量名_如何在Python中打印单个和多个变量?

    请考虑下面Python 2.x中的两个Python代码片段.# Code 1 print 1 # Output: 1# Code 2 print(1) # Output: 1 在Python 2.X中 ...

  8. win7如何更改文件类型_如何在win10中使用云笔记软件来做pdf手写笔记或绘图? - 敬业签便签...

    Win10是现在很多职场办公人士和笔记本电脑用户所使用的操作系统,其界面更为简洁,功能也更为强大.和Windows之前所发布的经典Win7系统一样,在Win10系统电脑上也可以下载安装很多好用的工具软 ...

  9. python一行输出多个数据_如何在Python中让两个print()函数的输出打印在一行内?

    1.两个连续的print()函数为什么在输出时内容会分行显示? 解:print()中有两个默认参数sep和end,其中sep是代替分隔符,end是代替末尾的换行符,默认使用','代替空格,且默认末尾加 ...

最新文章

  1. php获得帮助类数据_PHP解析xml格式数据工具类示例
  2. (七)Docker网络配置
  3. line-height 属性
  4. [转载]针对IIS7以上的ASP.NET网站自定义错误页面与异常日志总结
  5. 深入搜索引擎的关键——索引
  6. android viewflipper 动态加载,Android开发之ViewFlipper自动播放图片功能实现方法示例...
  7. 正版操作系统下载大全
  8. eNSP配置VLAN间路由
  9. Android APK安装后资源文件(res/assets)位置
  10. 400+条实用C/C++框架、库、工具整理 ,你能想到的都在这里了
  11. 万里汇WorldFirst提现人民币实现当天到账!
  12. 芯片开发流程对应的三大EDA厂商工具
  13. 大数据分析过程是如何的
  14. ZY Player 2.3.5 中文版 (全网视频播放器)
  15. VS2010向工具箱中添加控件解决 Microsoft Communications Control,未能实例化 设计时授权
  16. 百万投资血本无归,细数外汇资金盘《云腾科技》的八宗罪
  17. 魔法宝石(类似dp 杭电排位赛-2)
  18. HoloLens2的vuforia模型识别
  19. 神话造词——了解单词的起源及演变如何能帮我们更好地记单词
  20. 网吧2023:热闹回来了,电竞战歌起

热门文章

  1. Docker 方式安装 zipkin (linux 、阿里云ECS上安装)
  2. Docker 方式安装 RabbitMQ (ribbitmq linux 部署)
  3. 同名的const 成员函数
  4. [原创]Enterprise Architecture V7.5 C++代码生成时,头文件中函数声明没有注释,CPP中函数定义却有注释。...
  5. 程序员必知8大排序3大查找(一)
  6. Protocol Buffer 序列化
  7. 树莓派基金会来号召用键盘生物学家研究企鹅
  8. ASP 代码当前记录集不支持更新问题的解决办法。
  9. MySQL5.7 group by新特性,报错1055
  10. 基础、语法都不是最重要的,学Python最重要的是什么?编程思路!