首页
学习
活动
专区
圈层
工具
发布

Python 定义自己的常量类

在很多高级语言中都会提供常量的关键字来定义常量,如 C++ 中的 const , Java 中的 final 等,但是 Python 语言因为变量无类型,所以也就不存在这样的修饰符,其本身并未提供任何机制来进行常量的定义...因此我们只能通过自己定义类的方法来定义一个符合常量规则的类,使得该类定义的成员属性满足常量的属性。...由于常量的值一旦绑定则不可再修改,所以也就是说对常量二次赋值时需要抛出异常。因此我们显然需要改写自定义的常量类的赋值方法。...在 Python 中,当我们对类的属性进行赋值时,会自动调用 object 类的 __setattr__() 函数,该函数的定义如下: object....异常处理的定义方式请参看:Python 错误和异常 定义常量类: constant.py import sys class _const: # 自定义异常处理 class ConstError

4.5K50
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    #define 定义常量 与 定义 宏

    比如: printf("%s\n", __DATE__); printf("%s\n", __TIME__); 这是编译器自己设置的⼀些预定义符号,无需定义可以直接使⽤,现在问:这些printf...#define 定 义 宏 规则:#define定义机制允许把参数也替换到文本中 比如: #define SQU(x) x*x 注意:参数的左括号需与名紧密相接,不能有空号。...编译器处理后变成了int b = 10 * (5)+(5); 改为#define ADD(x) ((x)+(x))这样定义即可。 作者建议在定义宏时不 要 吝 惜 括号“()”。...(a):(b)) int main() { int z = MAX(3, 5); printf("%d", z); return 0; } 上述代码是定义成宏好呢,还是封装成函数好呢?...所以宏在 2.无需重复定义函数:函数参数的类型决定了该函数的使用范围,若形参为int型,则float型数据就无法使用该函数,,而使用宏是与参数类型无关的,没有这种顾虑。

    32100

    java常量的定义

    在Java语言中,主要是利用final关键字来定义常量。当常量被设定后,一般情况下就不允许再进行更改。如可以利用如下的形式来定义一个常量:final double PI=3.1315。...在定义这个常量时,需要注意如下内容: 一是常量在定义的时候,就需要对常量进行初始化。也就是说,必须要在常量声明时对其进行初始化。都跟局部变量或者成员变量不同。...不同的语言,在定义变量或者常量的时候,都有自己一套编码规则。这主要是为了提高代码的共享程度与提高代码的易读性。在Java语言中,定义常量的时候,也有自己的一套规则。...在定义final的数据不论是常量、对象引用还是数组,在主函数中都不可以改变。否则的话,会被器拒绝并提示错误信息。 由于Javal是面向对象的语言,所以在定义常量的时候还有与其它编程语言不同的地方。...最后导致的结果就是,虽然int1是常量,但是在不同对象中,其值有可能是不同的。可见,定义为final的常量并不是恒定不变的。因为默认情况下,定义的常量是在对象建立的时候被初始化。

    1.5K30

    Java常量:Java常量的定义和分类

    下面我们来系统地认识一下 Java 中的常量值,以及定义常量的方法。常量值常量值又称为字面常量,它是通过数据直接表示的,因此有很多种数据类型,像整型和字符串型等。下面一一介绍这些常量值。...,因此在使用前必须先定义。...它的声明格式为:Java 语言使用 final 关键字来定义一个常量,其语法如下所示:final dataType variableName = value其中,final 是定义常量的关键字,dataType...代码第 5 行声明成员常量,作用域类似于成员变量,但不能修改。代码第 9 行声明局部常量,作用域类似于局部变量,但不能修改。在定义常量时,需要注意如下内容:在定义常量时就需要对该常量进行初始化。...例如,如下图中定义常量 AGE 并赋予初值,如果更改 AGE 的值,那么在编译时将提示不能重合赋值错误。

    22310

    PHP中的预定义常量和魔术常量

    魔术常量(8个) 1、__LINE__ 返回文件中的当前行号。 2、__FILE__ 返回文件的完整路径和文件名。如果用在包含文件中,则返回包含文件名。...自 PHP 5 起本常量返回该函数被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。 5、__CLASS__ 返回类的名称(PHP 4.3.0 新加)。...自 PHP 5 起本常量返回该类被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。 6、__TRAIT__ Trait 的名字(PHP 5.4.0 新加)。...自 PHP 5.4 起此常量返回 trait 被定义时的名字(区分大小写)。Trait 名包括其被声明的作用区域(例如 Foo\Bar)。...此常量是在编译时定义的(PHP 5.3.0 新增) 预定义常量 PHP_VERSION PHP 程序的版本,如4.0.2 PHP_OS

    5.7K30

    CC++中define定义的常量与const常量

    常量是在程序中不能更改的量,在C/C++中有两种方式定义常量,一种是利用define宏定义的方式,一种是C++中新提出来的const型常变量,下面主要讨论它们之间的相关问题; define定义的常量:...printf (00401070) 00401042 add esp,8 在调用printf的时候,入栈的参数是10,根本没有取nNum值得相关操作,在利用const定义的常量时...2)define定义的常量编译器不会进行任何检查,const定义的常量编译器会进行类型检查,相对来说比define更安全 3)define的宏在使用时是替换不占内存,而const则是一个变量,占内存空间...4)define定义的宏在代码段中不可寻址,const定义的常量是可以寻址的,在数据段或者栈段中。...5)define定义的宏在编译前的预处理操作时进行替换,而const定义变量是在编译时决定 6)define定义的宏是真实的常量,不会被修改,const定义的实际上是一个变量,可以通过相关的手段进行修改

    2.4K10

    laravel 自定义常量方法

    版本5以上验证OK 常量定义方案A: step1 按路径生成constants文件 app/config/constants.php step2 constants文件里写 return...’); echo Config::get(‘constants.ADMIN_NAME’); echo Config::get(‘constants.ADMIN_NAME1.INIT’); 常量定义方案.../constants.php’; 2,在app/constants.php(手动创建文件)里定义纯PHP常量 , define(‘ADMIN’, ‘administrator’); =====...php return [ ‘URI’ => ‘baidu.com’ ]; 使用常量  echo Config::get(‘constants.URI’); ————————————————————— 第二种方法...php define(‘URI’, ‘xxx.com.cn’); 文件调用此常量 echo  URI; linux服务器  需要修改权限为755 发布者:全栈程序员栈长,转载请注明出处:https://

    1.2K50

    一、编程规约 (二)常量定义

    【强制】不允许任何魔法值(即未经预先定义的常量)直接出现在代码中。 ...【推荐】不要使用一个常量类维护所有常量,按常量功能进行归类,分开维护。  说明:大而全的常量类,非得使用查找功能才能定位到修改的常量,不利于理解和维护。 ...【推荐】常量的复用层次有五层:跨应用共享常量、应用内共享常量、子工程内共享常量、包内共享常量、类内共享常量。...反例:易懂变量也要统一定义成应用内共享常量,两位攻城师在两个类中分别定义了表示“是”的变量: 类A中:public static final String YES = "yes";   类B中:public...5) 类内共享常量:直接在类内部private static final定义。 【推荐】如果变量值仅在一个固定范围内变化用enum类型来定义。

    81810

    Java开发手册之常量定义

    【强制】不允许任何魔法值(即未经定义的常量)直接出现在代码中。...【推荐】不要使用一个常量类维护所有常量,按常量功能进行归类,分开维护。 说明:大而全的常量类,非得使用查找功能才能定位到修改的常量,不利于理解和维护。...【推荐】常量的复用层次有五层:跨应用共享常量、应用内共享常量、子工程内共享常量、包内共享常量、类内共享常量。...反例:易懂变量也要统一定义成应用内共享常量,两位攻城师在两个类中分别定义了表示 “是”的变量: 类A中:public static final String YES = "yes"; 类B中:public...5) 类内共享常量:直接在类内部private static final定义。 【推荐】如果变量值仅在一个范围内变化,且带有名称之外的延伸属性,定义为枚举类。

    1K10

    PHP过滤器预定义常量

    参考链接: PHP的magic常量 变量类型  常量名值(PHP7.2.4)说明INPUT_POST0POST变量INPUT_GET1GET变量INPUT_COOKIE2COOKIE变量INPUT_ENV4ENV...变量INPUT_SERVER5SERVER变量INPUT_SESSION6SESSION变量INPUT_REQUEST99REQUEST变量 过滤器标记  常量名值(PHP7.2.4)说明FILTER_FLAG_NONE0...验证过滤器  常量名值(PHP7.2.4)说明FILTER_VALIDATE_INT257整型验证过滤器FILTER_VALIDATE_BOOLEAN258布尔验证过滤器FILTER_VALIDATE_FLOAT259...FILTER_VALIDATE_IP275IP地址验证过滤器FILTER_VALIDATE_MAC276PHP5.5起,MAC地址验证过滤器FILTER_VALIDATE_DOMAIN277域名验证过滤器 清洗过滤器  常量名值...浮点过滤器FILTER_SANITIZE_MAGIC_QUOTES521转义过滤器FILTER_SANITIZE_FULL_SPECIAL_CHARS522PHP5.3.3起,全部特殊字符过滤器 其他  常量名值

    2.4K20

    阿里Java编程规约【二】常量定义

    【强制】不允许任何魔法值(即未经预先定义的常量)直接出现在代码中。 反例: // 开发者 A 定义了缓存的 key。...反例:易懂常量也要统一定义成应用内共享常量,两个程序员在两个类中分别定义了表示“是”的常量: 类 A 中:public static final String YES = "yes"; 类 B 中:...5)类内共享常量:直接在类内部 private static final 定义。 6. 【推荐】如果变量值仅在一个固定范围内变化用 enum 类型来定义。...接口只用于定义类型(effective Java 第二版 第15条): 如果要在多个类中使用一组常量,更适合在一个接口中定义这些常量,需要使用这些常量的类实现这个常量接口(constant interface...使用 import static 指令从定义常量的类中导入常量,可以减少输入的代码量。 3.

    85610

    Python变量与常量

    与变量相对的就是常量,在程序运行过程中,常量的值不会发生改变。...a=1,就是一个变量的赋值过程,等号“=”左边的值赋值给右边的变量a,这个过程已经包含了变量的申明和定义过程,每个变量需要先赋值再使用,变量在被赋值之后才会被创建。...不同于其他语言,例如在C语言中,变量在被赋值前,必须先定义变量的类型,而Python不需要,可以不定义变量的类型直接赋值,Python解释器会根据语法和操作数决定对象的类型。 ?...5、常量 常量指在程序运行过程中不会改变的量,c语言中有专门的常量定义语法:const int a = 60; 常量定义之后就不能更改,若更改就会报错,Python中没有类似const这样的修饰符,即没有专门用于定义常量的语法...,一般约定俗成 变量名以全大写的形式来表示这是一个常量~ NAME=kitty

    1.7K10
    领券