`

用python定义常量类

 
阅读更多
常量是指一旦初始化后就不能修改的固定值。c++中使用const保留字指定常量,而python并没有定义常量的保留字。但是python是一门功能强大的语言,可以自己定义一个常量类来实现常量的功能。

# -*- coding: UTF-8 -*-
# Filename: const.py
# 定义一个常量类实现常量的功能
#
# 该类定义了一个方法__setattr()__,和一个异常ConstError, ConstError类继承
# 自类TypeError. 通过调用类自带的字典__dict__, 判断定义的常量是否包含在字典
# 中。如果字典中包含此变量,将抛出异常,否则,给新创建的常量赋值。
# 最后两行代码的作用是把const类注册到sys.modules这个全局字典中。
class _const:
    class ConstError(TypeError):pass
    def __setattr__(self, name, value):
        if self.__dict__.has_key(name):
            raise self.ConstError, "Can't rebind const (%s)" %name
        self.__dict__[name]=value
import sys
sys.modules[__name__] = _const()

    这样就完成了一个常量类的定义,我们可以在use_const.py中调用const类。

import const
const.magic = 23
const.magic = 33

    运行之后,python解释器会提示错误:

const.ConstError: can't rebind const(magic)
分享到:
评论

相关推荐

    在Python中定义一个常量的方法

    今天小编就为大家分享一篇在Python中定义一个常量的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    python枚举实现

    一个方便python定义常量、显示常量标题的类

    深入理解Python变量与常量

    Python中的变量不需要声明,变量的赋值操作即是变量的声明和定义的过程。每个变量在内存中创建都包括变量的标识、名称、和数据这些信息。  Python中一次新的赋值,将创建一个新的变量。即使变量的名称相同,变量的...

    深入理解Python中的内置常量

    主要跟大家介绍了关于Python中内置常量的相关资料,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看吧。

    2019千峰Python超详细入门教程(百度云盘分享).docx

    │ 千锋Python教程:05.Python数据类型,标识符,变量与常量以及Number数据类型1.mp4 │ 千锋Python教程:06.Python数据类型,标识符,变量与常量以及Number数据类型2.mp4 │ 千锋Python教程:07.Python数据类型,标识符,...

    Python语言程序设计PPT课件.zip

    如变量定义、数据类型、数据结构、控制结构、类和对象、文件访问、数据分析和可视化,每一部分都有其特别之处,都值得我们重新认识,重新使用,重新熟悉。每一章开始的思维导图都是对本章技术脉络的梳理,开门见山地...

    Python语言程序设计习题答案.zip

    如变量定义、数据类型、数据结构、控制结构、类和对象、文件访问、数据分析和可视化,每一部分都有其特别之处,都值得我们重新认识,重新使用,重新熟悉。每一章开始的思维导图都是对本章技术脉络的梳理,开门见山地...

    Python中实现常量(Const)功能

    主要介绍了Python中实现常量(Const)功能,python语言本身没有提供const,本文使用一个类来实现常量定义功能,并介绍了使用方法,需要的朋友可以参考下

    简明python教程(chm)

    目录表 前言 本书的读者 ...11.4 使用类与对象的变量 11.5 使用继承 12.1 使用文件 12.2 储存与取储存 13.1 处理异常 13.2 如何引发异常 14.1 使用sys.argv 15.1 使用列表综合 15.2 使用lambda形式

    python利用百度AI实现文字识别功能

    # 定义常量 APP_ID = '11352343' API_KEY = 'Nd5Z1NkGoLDvHwBnD2bFLpCE' SECRET_KEY = 'A9FsnnPj1Ys2Gof70SNgYo23hKOIK8Os' # 初始化AipFace对象 aipOcr = AipOcr(APP_ID, API_KEY, SECRET_KEY) # 读取图片 filePath...

    Python中国象棋源代码

    Python中国象棋源程序共包含五个程序文件一个图片素材包, chinachess.py 为主文件;constants.py 数据常量;pieces.py 棋子类,走法;computer.py 电脑走法计算;button.py按钮定义。目前电脑走法比较傻,有兴趣的...

    简明python教程

    目录表 前言 本书的读者 ...11.4 使用类与对象的变量 11.5 使用继承 12.1 使用文件 12.2 储存与取储存 13.1 处理异常 13.2 如何引发异常 14.1 使用sys.argv 15.1 使用列表综合 15.2 使用lambda形式

    Python3 语法快速入门.xmind

    Python3 语法快速入门思维导图。基础语法涉及Python3 基础常量的定义(变量、数据类型、列表、元组、序列等等)

    围棋-Python源码

    定义玩家和空点:使用常量或枚举类型来定义两个玩家(黑棋和白棋)以及空点。 初始化棋盘:将棋盘上的所有点都设置为空点。 下棋:根据玩家的输入,将对应位置的点设置为该玩家的棋子(黑棋或白棋)。 判断胜负:...

    python语言程序设计基础第二版第二章答案-python语言程序设计基础(嵩天)第二章课 .pdf

    数组元素的类型和数 组⼤⼩,即数组中元素的数量) ⼀维数组定义的⼀般形式为:类型名,数组名[数组长度] 类型名指定数组中每个元素的类型:数组名是数组变量的 名称,是⼀个合法的标识符: 数组长度是⼀个整型常量表达式,...

    Python将字符串常量转化为变量方法总结

    前几天,我们Python猫交流学习群 里的 M 同学提了个问题。这个问题挺有意思,经初次讨论,我们认为它无解。 然而,我认为它很有价值,应该继续思考怎么解决,所以就在私密的知识星球上记录了下来。 万万没想到的是,...

    学习笔记(02):Python实战编程-变量与常量

    可以直接通过网盘下载全部的视频、代码...num = 100 # 定义一个变量,初始化的内容为100(常量) num = 99 # 修改变量的内容,但是常量的内容没有改变 print(num) 2、 # coding:UTF-8 # 定义程序的编码 num = 100

    Python学习Day01

    (4)编辑语言:编译型和解释型、静态语言和动态语言、强类型定义语言和弱类型定义语言 (5)Python种类: 二、Python入门: 1、变量 2、常量:长时间不发生变化 3、注释:解释说明,被注释的内容不会被执行 4、基础...

Global site tag (gtag.js) - Google Analytics