博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python区间库python-intervals
阅读量:4299 次
发布时间:2019-05-27

本文共 1640 字,大约阅读时间需要 5 分钟。

前阵项目有个范围需求,最开始用的range,但是没法处理连续的。然后搜了一下果然有轮子,不过最开始搜中文搜到的大多是interval这个库,

地址:。

链接的官网都打不开了,文档啥的也没了,而且实测再Python3下无限区间有点问题。

 

接着又搜到python-intervals这个库,这个基本没啥问题了,Python支持的挺好,文档也齐全。

安装和基本用法文档里写了:

简单记录个别的用法,就是开闭区间作为参数传递,不直接用封装好的接口。而封装好的接口实际上也是调用的底层的AtomicInterval.

AtomicInterval类实例化时接收四个参数:

left:左侧开闭(布尔型)

lower:下限

upper:上限

right:右侧开闭(布尔型)

#section = Interval(AtomicInterval(left, lower, upper, right))#实例:from intervals import Interval,AtomicInterval#生成一个左闭右开的2-4的区间section = Interval(AtomicInterval(True, 1, 2, False))sectionOut[4]: [1,2)

 

AtomicInterval源码: 

class AtomicInterval:    """    This class represents an atomic interval.    An atomic interval is a single interval, with a lower and upper bounds,    and two (closed or open) boundaries.    """    __slots__ = ('_left', '_lower', '_upper', '_right')    def __init__(self, left, lower, upper, right):        """        Create an atomic interval.        If a bound is set to infinity (regardless of its sign), the corresponding boundary will        be exclusive.        :param left: Boolean indicating if left boundary is inclusive (True) or exclusive (False).        :param lower: value of the lower bound.        :param upper: value of the upper bound.        :param right: Boolean indicating if right boundary is inclusive (True) or exclusive (False).        """        self._left = left if lower not in [inf, -inf] else OPEN        self._lower = lower        self._upper = upper        self._right = right if upper not in [inf, -inf] else OPEN        if self.is_empty():            self._left = OPEN            self._lower = inf            self._upper = -inf            self._right = OPEN

 

转载地址:http://ckxws.baihongyu.com/

你可能感兴趣的文章
Docker(二) 基础命令
查看>>
Docker(三) 构建镜像
查看>>
Spring 全家桶注解一览
查看>>
JDK1.8-Stream API使用
查看>>
cant connect to local MySQL server through socket /tmp/mysql.sock (2)
查看>>
vue中的状态管理 vuex store
查看>>
Maven之阿里云镜像仓库配置
查看>>
Maven:mirror和repository 区别
查看>>
微服务网关 Spring Cloud Gateway
查看>>
SpringCloud Feign的使用方式(一)
查看>>
SpringCloud Feign的使用方式(二)
查看>>
关于Vue-cli+ElementUI项目 打包时排除Vue和ElementUI
查看>>
Vue 路由懒加载根据根路由合并chunk块
查看>>
vue中 不更新视图 四种解决方法
查看>>
MySQL 查看执行计划
查看>>
OpenGL ES 3.0(四)图元、VBO、VAO
查看>>
OpenGL ES 3.0(五)纹理
查看>>
OpenGL ES 3.0(八)实现带水印的相机预览功能
查看>>
OpenGL ES 3.0(九)实现美颜相机功能
查看>>
FFmpeg 的介绍与使用
查看>>