您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python中实现常量(Const)功能

5b51 2022/1/14 8:23:45 python 字数 3101 阅读 609 来源 www.jb51.cc/python

python语言本身没有提供const,但实际开发中经常会遇到需要使用const的情形,由于语言本身没有这种支出,因此需要使用一些技巧来实现这一功能

概述

python语言本身没有提供const,但实际开发中经常会遇到需要使用const的情形,由于语言本身没有这种支出,因此需要使用一些技巧来实现这一功能

定义const类如下

class Const(object):
    class ConstError(TypeException): pass
    def __setattr__(self,key,value):
        if self.__dict__.has_key(key):
            raise self.ConstError,"Changing const.%s" % key
        else:
            self.__dict__[key] = value

    def __getattr__(self,key):
        if self.__dict__.has_key(key):
            return self.key
        else:
            return None

sys.modules[__name__] = Const()

这样,整个工程需要使用的常量都应该定义在一个文件中,如下

const.MAIL_PROTO_IMAP = 'imap'
const.MAIL_PROTO_GMAIL = 'gmail'
const.MAIL_PROTO_HOTMAIL = 'hotmail'
const.MAIL_PROTO_EAS = 'eas'
const.MAIL_PROTO_EWS = 'ews'

1.import module只是将module的name加入到目标文件的局部字典中,不需要对module进行解释
2.from module import xxx需要将module解释后加载至内存中,再将相应部分加入目标文件的局部字典中
3.python模块中的代码仅在首次被import时被执行一次

from project.utils import const时,发生了sys.modules[name] = Const(),此时const模块已经加载进入内存,系统字典中也已经有了Const对象,随后既可以使用Const实例了

在其他文件中需要使用常量值时,以如下方式调用

print const.MAIL_PROTO_IMAP

总结

以上是编程之家为你收集整理的Python中实现常量(Const)功能全部内容,希望文章能够帮你解决Python中实现常量(Const)功能所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶