用于防止从全局范围使用变量的python包。

safescope的Python项目详细描述


安全范围

Build StatusPyPIPyPI - Python VersionLicense

safescope是一个小的python包,可用于jupyter笔记本的开发。 目标是防止函数使用全局变量,而是引发一个NameError。 这是通过模拟一个模块并定义该模块中的所有函数(命名为side_scope)来实现的。

示例

safescope的主要部分是decorator@safescope。这模拟在文件side_scope.py中编写函数并将此函数导入笔记本。因此,用@safescope修饰的函数将无法访问笔记本环境中声明的变量。

在下面的示例中,只有foo(1)将执行,因为bar(1)返回NameError

fromsafescopeimportsafescopex=9deffoo(y):returnx+y@safescopedefbar(y):returnx+yfoo(1)# Returns  10bar(1)# Raise "NameError: name 'x' is not defined"

通过使用Imports,将导入添加到主作用域和side_scope中,使它们可用于用@safescope修饰的函数。

fromsafescopeimportsafescope,ImportswithImports():importnumpyasnp@safescopedefarange(n):returnnp.arange(n)arange(4)# Returns array([0, 1, 2, 3])

安装

safescope可以通过pip从pypi安装/pip3:

pip install safescope

或来自github,其:

pip install git+git://github.com/havakv/safescope.git

或者通过克隆repo从源代码:

git clone https://github.com/havakv/safescope.git
cd safescope
python setup.py install

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

推荐PyPI第三方库


热门话题
未检测到“空格”的java ASCII码   音频如何在Java中设置SourceDataLine的音量   java MyBatissSpringBoot无法使用作为bean注入的数据源   Java字谜递归列表<List<String>>仅存储空列表<Strings>   java显示30px高的JPanel,然后用minecraft填充剩余空间   java JOGL平滑度   Java:按完整与否对1d对象数组进行排序   arraylist仅当java结构不存在时才将对象添加到java结构中   无法初始化java渲染库在安卓 studio 4.1.1上出现错误   java SpringBoot ClassCastException   java解析文本文件,基于字数   java=运算符引发异常   java使点可拖动并存储新坐标JavaFx   JavaWebSphereApplicationServer:EJB模块和JMS路由器