设置之类的全局访问器。这可以跨应用程序和模块共享数据。

pyglobal的Python项目详细描述


全局访问器的设置。这可以跨应用程序和模块共享数据。在

此实用程序有助于在多个模块和库之间轻松共享值,而无需传递值。在

示例

简单的例子。在

# settings.pyimportpyglobalpyglobal.set('abc',123)pyglobal.default('qwerty','')pyglobal.set('Hello','World!')pyglobal.default('SECRET_KEY','!!!CHANGE!!!')# Warning: Any library using pyglobal could then look for this value.pyglobal.set('DATABASE_URL','http://')# Warning: Any library using pyglobal could then look for this value.

然后使用项目另一部分中的设置

^{pr2}$

子模块数据库不需要知道设置.py并且可以嵌套在包中。在

# db.pyimportpyglobaldb=Database(pyglobal.get('DATABASE_URL'))

避免与其他项目发生冲突

避免冲突,并在应用程序中添加少量的安全性

# settings.pyimportpyglobalimportuuidapp_scope='MYAPP='+str(uuid.uuid4())defscope_get(key,default=None):returnpyglobal.get(key,default,app_scope)defscope_set(key,value)returnpyglobal.set(key,value,app_scope)pyglobal.scope_get=scope_getpyglobal.scope_set=scope_setpyglobal.set('SECRET_KEY','!! Change !!',scope=app_scope)scope_set('DATABASE_URL','http://')

同样,您可以在其他文件中使用,但您也需要访问范围。在

# main.pyimportpyglobalimportsettingssecret=pyglobal.scope_get('SECRET_KEY')db_url=pyglobal.get('DATABASE_URL',scope=settings.app_scope)

在某些情况下,代码总是可以反汇编的,所以这并不是真正安全的。 所有作用域都是另一个层次的混淆,也是避免全局名称与其他项目冲突的一种方法。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
如何在java中调用Paint组件方法   多层次POM中的java覆盖依赖项/插件管理   java模式识别   JavaSpringMVC+Log4j2定义了Log4j2。未标识非类路径位置中的属性文件   java我们如何将IntelliJ IDEA中的maven和gradle项目与源代码浏览支持集成?   Maven mvn exec:java在Windows上工作,但不是Ubuntu 20   java在Jaxb2Marshaller上使用带有packagesToScan属性的JAXBElement时没有端点适配器   java删除方法和节点   java如何为某些场景创建正则表达式模式   java如何通过gridView中的intent()传递ArrayList数据。setOnItemClickListener()   java UnsupportedClassVersionError 1.7/1.5   java为什么JVM参数是http。tomcat servlet没有使用proxyHost?   java将ArrayList从字母顺序排序到最频繁/最不频繁   java动态字段列表迭代   java如何将字节转换为位?   hadoop java。mapreduce作业中的lang.NullPointerException   javasocketIO无法与Android中的LocationListener一起使用   java在卸载时清除内部存储   java池回收错误2个精灵同时碰撞到一个精灵