Python 定义常量

常量在编写程序的时候,一旦设定就不能再进行变动,常量一种约定俗成的方式,所有字母大写并用下划线分隔单词的方式(如MAX_VALUE, OUT_TIME等),但是python没有提供设置常量用法,需要自己自定义类实现常量功能。

自定义类实现常量功能

这种办法就是解决简单用全大写和下划线定义固定变量无法解决篡改的问题。
下面是一个例子:
创建一个 constant.py 文件,在其中创建const类

class Const():
class ConstError(TypeError): pass

class ConstCaseError(ConstError): pass

def __setattr__(self, key, value):
if key in self.__dict__.keys():
# 存在性验证
raise self.ConstError("Can‘t change a const variable: ‘%s‘" % key)

if not key.isupper():
# 语法规范验证
raise self.ConstCaseError("Const variable must be combined with upper letters:‘%s‘" % key)

self.__dict__[key] = value

如何使用自定义常量类
from constant import Const

const = Const()

const.TEST = ‘HH‘
print(const.TEST)
# 尝试修改变量
const.TEST = ‘JJ‘
# 尝试常量名称为小写字母
const.test = ‘HH‘

原文地址:https://www.cnblogs.com/WebLinuxStudy/p/11840292.html

时间: 2024-11-05 18:12:27

Python 定义常量的相关文章

python定义常量

常量是指一旦初始化后就不能修改的固定值.c++中使用const保留字指定常量,而python并没有定义常量的保留字.但是python是一门功能强大的语言,可以自己定义一个常量类来实现常量的功能. const.py 1 # -*- coding: utf-8 -*- 2 3 class _const: 4 class ConstError(TypeError) : pass 5 6 def __setattr__(self, key, value): 7 # self.__dict__ 8 if

java中的关键字static(静态变量)和final定义常量

1 package point; 2 3 class Point { 4 5 int x = 0; 6 int y = 0; 7 static int z = 100; // 定义静态变量z,类变量 8 static final double PI = 3.1415926;// final定义常量,它的值在运行时不能被改变 9 10 Point(int a, int b) { 11 //PI=3.1415926; 12 /* 13 * 当使用静态常量的时候,不能在构造函数中初始化, 因为静态时,

js面向对象编程:如何定义常量?

js中有一个关键字const,但目前的浏览器似乎还不支持,如果一定要定义一些常量,其实可以使用闭包,匿名函数实现常量的定义. 例如: var Class = (function() { var UPPER_BOUND = 100;//定义了常量 var Test={}; // 定义了一个静态方法 获取常量的方法 Test.getUPPER_BOUND=function() { return UPPER_BOUND; } return Test; })(); 用法: var k=Class.get

php中const定义常量

const 常量 1.在定义时必须被初始值,2.前面不加任何修饰符3.变量名字母一般都大写4.常量可以被子类继承5.一个常量是属于一个类的,而不是某个对象的 作用:当某些值是固定不变的,就用const 1.const 定义的常量和define()定义的常量的区别? 希望一个成员变量不被修改 例如圆周率 3.1415926定义:const 常量名=值; 没有$符访问:类名 ::常量名 或 接口名::常量名 <?php defined('TEXT');检查一个名称的常量是否存在 class A{ c

iOS define 宏定义 和 const定义常量区别

const   const 是c++中的修饰符.  c++中常用来定义常量,修饰左值. #define 宏定义语句, 在预处理阶段直接做文本替换,不做类型检查. 它们之间的最大区别: 1.  对于const 变量,系统只给了一个相应的内存地址,而#define则是给出了一个立即数.因为const变量是存放在内存的静态区域中,所以在程序运行过程中const变量只有一个拷贝,而#define 所定义的宏变量却有多个拷贝,所以宏在程序运行过程中所消耗的内存要比const变量的大得多.#define所定

可以DEFINE 定义常量数组了

php7 可以define 定义常量数组了 利用php7的define定义数组 <?php define('language', ['php', 'java', 'jsp', 'asp']); echo language[1]; 输出java

python设置常量参数

python设置常量参数 by 伍雪颖 const.py: class _const: class ConstError(TypeError) :pass class ConstCaseError(ConstError) :pass def __setattr__(self,name,value): if self.__dict__.has_key(name): raise self.ConstError,"Can't change const.%s" % name ifnot nam

C# 定义常量 两种实现方法

在C#中定义常量的方式有两种,一种叫做静态常量(Compile-time constant),另一种叫做动态常量(Runtime constant) 在C#中定义常量的方式有两种,一种叫做静态常量(Compile-time constant),另一种叫做动态常量(Runtime constant).前者用“const”来定义,后者用“readonly”来定义. 对于静态常量(Compile-time constant),它的书写方式如下: public const int MAX_VALUE =

php常量,提前定义常量,魔术常量及基本数据类型

常量 定义: 形式一 // define("PI",常量值); define("PI",3.14); define("school","讲理"); 形式二 // 定义形式二 const cc1 = 1234; const cc2 = "abcd"; 使用: 形式一 // 直接使用常量名 echo "PI的值:".PI; 形式二 // 通过constant函数,灵活性体现-->常量名