用于配置文件的小型资源管理器

resource-manager的Python项目详细描述


此存储库包含一个用于在 python语法的子集。它旨在结合python的美丽 语法,延迟初始化和更简单的导入机制。

功能概述

惰性范围

配置文件中的作用域是惰性的,这意味着将计算任何声明的值 只有在被要求的时候。这允许用户在一个 配置。

由于作用域是惰性的,因此以下代码不明确:

# which value to use?x=1x=2

为了避免歧义,每个名称只能在配置中使用一次。因此有些 不支持语法结构(例如for循环)。

声明

只支持三个python语句:值定义、函数定义和导入。

值定义

值是使用=运算符声明的,后跟任何有效的python表达式。

下面是一些示例:

file_path="/some/path"num_folds=5kernel_sizes=[3,3,5]some_value=apply_to_input(lambdax:x**2)odd_squares=[i**2foriinrange(10)ifi%2==1]

功能定义

您可以在配置中定义函数,但是它们的本地作用域也是惰性的,因此 约束成立。

函数体由多个值或函数定义或断言组成,后跟一个返回语句:

defnormalize(x,y,z):length=sqrt(x**2+y**2+z**2)assertlength>0returnx/length,y/length,z/lengthdefadder(f):defwrapper(x):returnf(x)+1returnwrapper@adderdeff(x):returnxdefcheck_call(seq):assertseq,seqreturnf(seq[0])

即使作用域是惰性的,所有断言都会被求值(就在return语句之前)。

导入

您可以像在普通python中一样从配置文件中的其他库导入:

fromnumpyimportprodasproductfromnumpyimportsum,randomimportpandasaspdimporttqdmimportmath.radians

您还可以从配置文件导入,该文件位于相对于主配置的位置(在 案例来自./some_config.config./folder/dataset.config../upper/another.config):

from.some_configimport*from..upper.anotherimport*from.folder.datasetimportDataSetasD

注意,只有从另一个配置导入时,才能使用星号导入(例如from a import *)。

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

推荐PyPI第三方库


热门话题
使用客户端Java代码进行Spring引导多部分文件上载   Java Swing如何使JButton的边界不可见?   Amstrong数字返回为空结果(java)   多线程Java:永远等待Thead   java如何继续查找播放同一首歌曲但压缩格式不同的音频文件?   java Windows无法启动服务,错误1053:服务未及时响应启动或控制请求   java如何使用多线程连续更新GUI   java AndroidStudio:如何将地图附加到NavigationDrawer片段   JavaEclipse和Maven编译的差异   java如何比较long值等于long值   javafx ActionEvent中的javafx调用方法   java Hibernate:如何使实体和所有关联默认为只读?(或从会话中自动退出关联)   启动maven wildfly插件时出现java异常:服务器未能在60秒内启动   java在通过ant脚本运行junit时在控制台上获取输出   java Spring Hibernate模式更新不适用于数据库名称中的减号