返回顶部
首页 > 资讯 > 后端开发 > Python >深入理解Python中的内置常量
  • 190
分享到

深入理解Python中的内置常量

常量Python 2022-06-04 18:06:33 190人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

前言 大家都知道python内置的常量不多,只有6个,分别是True、False、None、NotImplemented、Ellipsis、__debug__。下面就来看看详细的介绍: 一. True

前言

大家都知道python内置的常量不多,只有6个,分别是True、False、None、NotImplemented、Ellipsis、__debug__。下面就来看看详细的介绍:

一. True

1. True是bool类型用来表示真值的常量。


>>> True
True
>>> type(True)
<class 'bool'>

2. 对常量True进行任何赋值操作都会抛出语法错误。


>>> True = 1
SyntaxError: can't assign to keyWord

二. False

1. False是bool类型用来表示假值的常量。


>>> False
False
>>> type(False)
<class 'bool'>

2. 对常量False进行任何赋值操作都会抛出语法错误。


>>> False = 0
SyntaxError: can't assign to keyword

三. None

1. None表示无,它是NoneType的唯一值。


>>> None #表示无,没有内容输出
>>> type(None)
<class 'NoneType'>

2. 对常量None进行任何赋值操作都会抛出语法错误。


>>> None = 2
SyntaxError: can't assign to keyword

3. 对于函数,如果没有return语句,即相当于返回None。


>>> def sayHello(): #定义函数
 print('Hello')

 
>>> sayHello()
Hello
>>> result = sayHello()
Hello
>>> result
>>> type(result)
<class 'NoneType'>

四. NotImplemented

1. NotImplemented是NotImplementedType类型的常量。


>>> NotImplemented
NotImplemented
>>> type(NotImplemented)
<class 'NotImplementedType'>

2. 使用bool()函数进行测试可以发现,NotImplemented是一个真值。


>>> bool(NotImplemented)
True

3. NotImplemented不是一个绝对意义上的常量,因为他可以被赋值却不会抛出语法错误,我们也不应该去对其赋值,否则会影响程序的执行结果。


>>> bool(NotImplemented)
True
>>> NotImplemented = False
>>> 
>>> bool(NotImplemented)
False

4. NotImplemented多用于一些二元特殊方法(比如__eq__、__lt__等)中做为返回值,表明没有实现方法,而Python在结果返回NotImplemented时会聪明的交换二个参数进行另外的尝试。


>>> class A(object):
 def __init__(self,name,value):
  self.name = name
  self.value = value
 def __eq__(self,other):
  print('self:',self.name,self.value)
  print('other:',other.name,other.value)
  return self.value == other.value #判断2个对象的value值是否相等

>>> a1 = A('Tom',1)
>>> a2 = A('Jay',1)
>>> a1 == a2
self: Tom 1
other: Jay 1
True

>>> class A(object):
 def __init__(self,name,value):
  self.name = name
  self.value = value
 def __eq__(self,other):
  print('self:',self.name,self.value)
  print('other:',other.name,other.value)
  return NotImplemented

>>> a1 = A('Tom',1)
>>> a2 = A('Jay',1)
>>> a1 == a2
self: Tom 1
other: Jay 1
self: Jay 1
other: Tom 1
False

当执行a1==a2(即调用__eq__(a1,a2)),返回NotImplemented时,Python会自动交换参数再次调用__eq__(a2,a1)。

五. Ellipsis

1. Ellipsis是ellipsis类型的常量,它和…是等价的。


>>> Ellipsis
Ellipsis
>>> type(Ellipsis)
<class 'ellipsis'>
>>> ...
Ellipsis
>>> ... == Ellipsis
True

2. 使用bool()函数进行测试可以发现,Ellipsis是一个真值。


>>> bool(Ellipsis)
True

3. Ellipsis不是一个绝对意义上的常量,因为他可以被赋值却不会抛出语法错误,我们也不应该去对其赋值,否则会影响程序的执行结果。


>>> bool(Ellipsis)
True
>>> Ellipsis = False
>>> bool(Ellipsis)
False

4. Ellipsis多用于表示循环的数据结构


>>> a = [1,2,3,4]
>>> a.append(a)
>>> a
[1, 2, 3, 4, [...]]
>>> a
[1, 2, 3, 4, [...]]
>>> len(a)
>>> a[4]
[1, 2, 3, 4, [...]]
>>>

六. __debug__

1. __debug__是一个bool类型的常量。


>>> __debug__
True
>>> type(__debug__)
<class 'bool'>

2. 对常量__debug__进行任何赋值操作都会抛出语法错误。


>>> __debug__ = False
SyntaxError: assignment to keyword

3. 如果Python没有使用-O选项启动,此常量是真值,否则是假值。

总结

好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对编程网的支持。

--结束END--

本文标题: 深入理解Python中的内置常量

本文链接: https://lsjlt.com/news/13268.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 深入理解Python中的内置常量
    前言 大家都知道Python内置的常量不多,只有6个,分别是True、False、None、NotImplemented、Ellipsis、__debug__。下面就来看看详细的介绍: 一. True ...
    99+
    2022-06-04
    常量 Python
  • 深入理解Python变量与常量
    变量是计算机内存中的一块区域,变量可以存储规定范围内的值,而且值可以改变。基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中。常量是一块只读的内存区域,常量一旦被初始化就不能被改变。...
    99+
    2022-06-04
    常量 变量 Python
  • 怎么深入理解Python中的ThreadLocal变量
    怎么深入理解Python中的ThreadLocal变量,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。在上篇我们看到了 ThreadLocal ...
    99+
    2024-04-02
  • 深入了解Python中的变量
    目录1 Python变量概述2 Python变量的命名3 Python变量赋值3.1 Python赋值概述3.2 Python变量的基本格式3.3 Python变量的其他赋值格式3....
    99+
    2024-04-02
  • Python深入06——python的内存管理详解
    语言的内存管理是语言设计的一个重要方面。它是决定语言性能的重要因素。无论是C语言的手工管理,还是Java的垃圾回收,都成为语言最重要的特征。这里以Python语言为例子,说明一门动态类型的、面向对象的语言的...
    99+
    2022-06-04
    详解 内存管理 Python
  • 深入理解Python中变量赋值的问题
    前言 在Python中变量名规则与其他大多数高级语言一样,都是受C语言影响的,另外变量名是大小写敏感的。 Python是动态类型语言,也就是说不需要预先声明变量类型,变量的类型和值在赋值那一刻被初始化,下面...
    99+
    2022-06-04
    赋值 变量 Python
  • 深入理解Python中的__builti
    0.说明        这里的说明主要是以Python 2.7为例,因为在Python 3+中,__builtin__模块被命名为builtins,下面主要是探讨Python 2.x中__builtin__模块和__builtins__模块...
    99+
    2023-01-31
    Python __builti
  • 深入理解python中的ThreadLocal
    ThreadLocal在threading模块中,可以见得它是为我们的线程服务的。 它的主要作用是存储当前线程的变量,各个线程之间的变量名是可以相同的,但是线程之间的变量是隔离的,也...
    99+
    2023-03-08
    python ThreadLocal
  • JVM常量池的深入讲解
    提示:这里咱们要说的常量池,常量池就是咱们面试中所说的常量池,谈谈你对常量池的认识?面试官一问咱们就懵逼了,你要记得你脑子中有一张图!!! 剩下的就好办了 提示:请各位大佬批评指正!...
    99+
    2024-04-02
  • 深入理解Java中的java.lang.ArithmeticException异常
    引言 在Java中,异常处理是一种重要的编程机制。异常是指在程序执行过程中发生的错误或异常情况,它打破了正常的程序流程,需要进行相应的处理。Java提供了丰富的异常类和异常处理语法,使开发人员能够更好...
    99+
    2023-10-18
    java 开发语言
  • Python内建类型bytes深入理解
    目录引言1 bytes和str之间的关系2 bytes对象的结构:PyBytesObject3 bytes对象的行为3.1 PyBytes_Type3.2 bytes_as_sequ...
    99+
    2024-04-02
  • 深入了解Python的异常处理机制
    目录什么是异常?异常处理try-except 格式一-try...except...格式二-try...except {errorName}...格式三-try...except {...
    99+
    2024-04-02
  • 深入理解Python3 内置函数大全
    本文主要介绍了Python3 内置函数,分享给大家,具体如下: 内置函数 以下代码以Python3.6.1为例 #coding=utf-8 # builtin_function.py 内置函数 im...
    99+
    2022-06-04
    函数 大全
  • 深入理解C#中常见的委托
    目录C#之委托1.定义一个委托:2.定义回调方法:3.编写一个方法来触发回调函数:4.定义Counter的方法调用5. 查看控制台信息6. 委托链:7. C#为委托提供的简化:7.1...
    99+
    2024-04-02
  • 深入理解python try异常处理机制
    深入理解python try异常处理机制 #python的try语句有两种风格 #一:种是处理异常(try/except/else) #二:种是无论是否发生异常都将执行最后的代码(try/finally...
    99+
    2022-06-04
    异常 机制 python
  • Python万字深入内存管理讲解
    目录Python内存管理一、对象池1.小整数池2.大整数池3.inter机制(短字符串池)二、垃圾回收2.1.引用计数2.1.1 引用计数增加2.1.2 引用计数减少2.2.标记清除...
    99+
    2024-04-02
  • 深入解析Python的Tornado框架中内置的模板引擎
    template中的_parse方法是模板文法的解析器,而这个文件中一坨一坨的各种node以及block,就是解析结果的承载者,也就是说在经过parse处理过后,我们输入的tornado的html模板就变成...
    99+
    2022-06-04
    框架 模板 引擎
  • 深入理解SQL解析的内涵
    SQL解析:探究其背后的意义,需要具体代码示例引言:SQL(Structured Query Language)是结构化查询语言的缩写,是一种用于管理和操作关系型数据库的标准语言。作为一种强大的数据操作语言,SQL的解析是数据管理和查询的基...
    99+
    2023-12-28
    解析 (Parsing) SQL (Structured Query Language) 背后的意义 (underlyi
  • 深入理解python类的实例变量和类变量
    本python是python 3.5版本~!!!class aa:       w = 10       def __init__(self):            self.x = 11            self.y = 12  ...
    99+
    2023-01-31
    变量 实例 python
  • 深入解析Python中的__builtins__内建对象
    如果你已经学习了包,模块这些知识了。 你会不会有好奇:Python为什么可以直接使用一些内建函数,不用显式的导入它们,比如 str() int() dir() ...? 原因是Python解释器第一次启动的...
    99+
    2022-06-04
    内建 对象 Python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作