python的django项目中定义常量const.py的方法

本文介绍了一种在Python中自定义常量的方法,通过创建Const类并利用sys.modules注入技术,实现在Python代码中定义不可变常量的目标,解决了Python语言本身不提供const关键字的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在今天的实际开发中碰到需要定义常量的情形,c语言提供了const关键字来实现,但是python本身却没有提供const,要想在python代码中定义常量,需要我们自己来实现。

1、编写一个const.py的python文件——const.py(要求符合“命名全部为大写”“值一旦绑定便不可再修改”这两个条件),所用到的代码如下:

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

    class ConstCaseError(ConstError):
        pass

    def __setattr__(self, name, value):
        if name in self.__dict__://python3.x版本之后的样子
            raise self.ConstError("can't change const.%s" % name)
        if not name.isupper():
            raise self.ConstCaseError("const name '%s' is not all uppercase" % name)

        self.__dict__[name] = value


import sys

sys.modules[__name__] = Const()

    注意:使用sys.modules[name]可以获取一个模块对象,并可以通过该对象获取模块的属性,这儿使用了sys.modules向系统字  典注入了一个const对象从而实现了在执行import const时实际获取了一个const实例的功能

2、整个工程需要使用的常量都应该定义在一个文件中(我的是project_const.py)例如你将const.py放在了project.utils目录下,常量被定义在apps目录下的project_consts.py文件中,应该这么写:

from apps.utils import const

const.COMPANY = '0'
const.PERSON = '1'

    注意:这个导入的语句特别重要,之前就是看不懂怎么使用才出现了差错

3、在其他文件中应用到存储常量的文件夹里的内容时,采用:

from apps.project_consts import const

至此解决了这个python中没有变量的问题,码字不易,希望大家给点个赞!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值