通过AST语法树解析来实现一个简易的表达式求值器
最近工作中需要搞一个简易的规则引擎,在翻了Github之后发现了danthedeckie/simpleeval这个库,用起来挺方便的,不过在查阅源码后发现,simpleeval原理是复用Python的ast库来解析计算的,依赖于Python语法,通过构建一个安全沙箱来隔离运行的。
不过在工作业务中,考虑到后续极有可能有自定义语法的需求,所以想来想去,还是写一个简单的解析器比较合适。
代码将基于Python实现。
最近工作中需要搞一个简易的规则引擎,在翻了Github之后发现了danthedeckie/simpleeval这个库,用起来挺方便的,不过在查阅源码后发现,simpleeval原理是复用Python的ast库来解析计算的,依赖于Python语法,通过构建一个安全沙箱来隔离运行的。
不过在工作业务中,考虑到后续极有可能有自定义语法的需求,所以想来想去,还是写一个简单的解析器比较合适。
代码将基于Python实现。
最近咱们实验室搞到了那么点经费,于是趁这个机会,就给换了一个路由器:红米AC2100🥳(原来那个路由器才百兆,局域网传文件实在太慢了🤬)。
我一直想做一个程序,用于自动登录学校的校园网,不然每隔一段时间就得手动登录一下,很是麻烦。之前的那个路由器上完全没内存安装一些库了,所以这个idea一直没落实,既然现在换了,那就肯定要把这个坑填上!!红米AC2100自带的系统并不好用,还是得给它刷个OpenWRT,然后再跑上我的程序~所以就有了这么一篇文章。
最近在开发小程序的时候,有一个需求是:在获取某一指定日期后,计算那一日期距离今天是第几周(假设每周的第一天是星期天)。这个时候遇到了一个很奇怪的问题:每当第n周周六的23:59向第n+1周周日的00:00发展的时候,计算结果并不会+1,经过好多次的测试之后,我发现时间差为8小时,也就是说周日的08:00的时候,计算结果才会+1,经过一个多小时的查资料,才发现了解决办法,就此记录一下。
碰到个很烦人的问题,在高负载任务(比如编译程序,运行虚拟机等)之后,Macbook自带的音响播放音乐会出现杂音,滋啦滋啦的声音。结束高负载任务后依然无法自行恢复,只有重启才能恢复正常,这对于我来说挺难受的,毕竟重启意味着很多窗口得重新打开,真的很麻烦,查了好半天,记下解决方法。