python实现常量const
新建const.py:
#-*-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()
新建test.py:
#-*-coding:UTF-8-*-
import const
const.magic = 23
print const.magic
const.magic = 33
结果:

python实现常量const的更多相关文章
- Python定义常量
用Python实现常量 定义 # coding=utf-8 # const.py class ConstAssignError(Exception): pass class _const(object ...
- 1.2 - C#语言习惯 - 用运行时常量readonly而不是编译期常量const
C#中有两种类型的常量:编译期常量和运行时常量.二者有着截然不同的行为,使用不当将会带来性能上或正确性上的问题. 这两个问题最好都不要发生,不过若难以同时避免的话,那么一个略微慢一些但能保证正确的程序 ...
- 常用的Python字符串常量
下面是一些常用的Python字符串常量string.digits:包含0-9的字符串string.letters:包含所有大小写字母的字符串 string.lowercase:所有小写字母string ...
- 2. python 字符串常量
2. python 字符串常量 1.单双引号字符串是一样的 >>> 'abc',"abc" ('abc', 'abc') >>> 当 ...
- 宏(define)与常量(const)
http://mp.weixin.qq.com/s?__biz=MzAxMzE2Mjc2Ng==&mid=402470669&idx=1&sn=e34db91190d8d46f ...
- 常量Const
常量Const YEAR = 2019 # 全部大写的变量名为常量 注释 给不能理解的写一个描述 便于理解 增强可读性 三种形式 单行(当行)注释:# 只注释一行 不能换行 注释的代码不执行 不使用 ...
- 石川es6课程---3、变量let和常量const
石川es6课程---3.变量let和常量const 一.总结 一句话总结: let非常好用,尤其是let的块级作用域可以解决之前要(function(){})()立刻执行函数做的块级作用域 1.js中 ...
- #define 和常量 const 的区别
const 后的常量,程序对其中只能读不能修改. #include <iostream> using namespace std; int main() { const double pi ...
- Python 定义常量
常量在编写程序的时候,一旦设定就不能再进行变动,常量一种约定俗成的方式,所有字母大写并用下划线分隔单词的方式(如MAX_VALUE, OUT_TIME等),但是python没有提供设置常量用法,需要自 ...
随机推荐
- Thinkphp框架下PHPExcel实现Excel数据的批量化导入导出
第一步:下载官方的PHPExcel文件,下载地址https://github.com/PHPOffice/PHPExcel 第二步:解压打开,将PHPExcel\Classes\全部文件拷贝到thin ...
- 超链接 a的小手
cursor:hand 仅仅ie only,FIREFOX底下就不可以正常渲染 cursor:pointer; <span style="cursor:pointer;" ...
- HDFS Snapshots
Overview HDFS Snapshots are read-only point-in-time copies of the file system. Snapshots can be take ...
- YARN Architecture
The fundamental idea of YARN is to split up the functionalities of resource management and job sched ...
- JZ2440裸板烧写(打补丁)
制作uImage,需要上网下载内核+patch补丁 1.将内核用ftp发送到 打补丁patch -p1 < ../补丁文件名 打补丁文件(目录) 2.配置 :复制cp configuratio ...
- 显示界面的流畅性FHHFPSIndicator
github地址https://github.com/jvjishou/FHHFPSIndicator 1.使用cocoapods pod 'FHHFPSIndicator' 使用方法: 然后在Ap ...
- XMind思维导图主题操作要点
- bootstrap模态框手动开启关闭与设置点击外部不关闭
http://www.cnblogs.com/qlqwjy/p/7491054.html 完整的参考菜鸟教程:http://www.runoob.com/bootstrap/bootstrap-mod ...
- Spark中cache和persist的区别
cache和persist都是用于将一个RDD进行缓存的,这样在之后使用的过程中就不需要重新计算了,可以大大节省程序运行时间. cache和persist的区别 基于Spark 1.6.1 的源码,可 ...
- 使用Python2.7 GET Onenet平台的数据
效果 代码 # -*- coding: utf-8 -*- """ ------------------------------------------------- F ...