【python – 编辑:命名空间和异常处理】教程文章相关的互联网学习教程文章

python – 如何在命名空间dict中执行函数?【代码】

说我有以下词典:In [6]: scope Out[6]: {'bar': <function bar>, 'foo': <function foo>}foo和bar是:def foo():return 5def bar(x):return foo() + x我想运行bar(1),但它需要找到foo().有没有办法在范围命名空间中运行bar(),以便找到foo()? 我不确切知道范围栏中需要哪个函数,所以我需要在scope命名空间中运行bar的一般方法.我没有源代码,也无法修改任何函数来接受dict. 似乎函数具有__closure__属性,但它是不可变的.还有一个__...

python – decorator,用于在命名空间中生成新类【代码】

我需要它的具体用例是弃用类名. 假设我们在早期版本中有A类,我们想要弃用其名称但保持向后兼容性:class A(B):def __init__(self, *args, **kwargs):warnings.warn('deprecation!')super(A, self).__init__(*args, **kwargs)……而B现在有正确的实施. 当我们创建A类时,我们将在此处遇到弃用警告.我们也可以在__init__上使用已弃用的模块用于装饰器. 但是,我想跳过这个过程并编写更少的代码,并希望实现如下:@deprecated_alias('A')...

python – 编辑:命名空间和异常处理【代码】

在我对计算机科学课程的介绍中,我们正在学习命名空间.我理解这个概念就像导入像math这样的模块一样,然后我们导入一个命名空间和该命名空间下的类属性,但执行该过程对我来说非常困惑.这是我不知道如何开始执行的问题之一: 编写一个函数name_add(a,b),它使用异常处理(只是一个简单的try / except语句)来添加两个对象a和b,并返回结果.如果用户使用未定义运算符的任何类型调用函数,则该函数应打印一条消息,指出在类型(a)和类型(b)之间...

如何在python中获取包的干净导入命名空间?【代码】

我确信这是微不足道的,但我无法弄清楚. 目录结构:mylib/__init__.py mylib/MyClass.pyinit.py读取:import MyClass __all__ = [MyClass]MyClass.py:class MyClass(object): def __init__(self):pass我必须使用mylib.MyClass.MyClass()创建MyClass的实例,当我希望它是mylib.MyClass()时 我认为要让它工作,我必须把所有= [MyClass.MyClass],但这不起作用. 你是如何让这个工作的? NB.我明白这里发生了什么;文件本身就是一个命名空间...

浅谈Python类命名空间【代码】

再次重申,Python 的类就像命名空间。Python 程序默认处于全局命名空间内,类体则处于类命名空间内,Python 允许在全局范围内放置可执行代码,当 Python 执行该程序时,这些代码就会获得执行的机会。类似地,Python 同样允许在类范围内放置可执行代码,当 Python 执行该类定义肘,这些代码同样会获得执行的机会。 例如,如下程序测试了类命名空间: class Item: # 直接在类空间中放置执行性质代码 print(正在定义Item类...

将子目录添加到python命名空间【代码】

我希望能够导入一个实际位于另一个模块的子目录中的python模块. 我正在开发一个带插件的框架.由于我预计会有几千(目前已经有250个)并且我不想要一个包含> 1000个文件的大目录,我将它们排序在这样的目录中,在那里它们按照第一个字母分组他们的名字:framework __init__.pyframework.pytools.pyplugins __init__.pya __init__.pyatlas.py...b __init__.pybinary.py...c __init__.pycmake...

python – 在具有不一致的命名空间声明的文档上使用iterparse,然后使用xpath【代码】

我需要整理一段代码,将可能很大的XML文件解析为自定义Python对象.这个想法大致如下:from lxml import etree for e, tag in etree.iterparse(source, tag='Foo'):print tag.xpath('bar/baz')[42] # there's actually a function call here问题是,一些文档有一个名称空间声明,有些文档没有.这意味着在上面的代码中tag =’Foo’和xpath部分都不起作用. 现在我一直在忍受丑陋for e, tag in etree.iterparse(source):if tag.tag.endswi...

如何在python中将对象注入另一个命名空间?【代码】

我正在为办公室里的其他人写的代码编写一些单元测试. Python不是我最强的语言.虽然我已经成功进行了基本的单元测试,但是在python中进行模拟会让我陷入困境. 我需要做的是覆盖对ConfigObj的调用,并将我自己的mock config / fixture注入任何ConfigObj调用. settings.pyfrom configobj import ConfigObj config = ConfigObj('/etc/myapp/config')utils.pyfrom settings import config """lots of stuff methods using various config ...

Python命名空间:如何在其他模块中访问唯一对象?【代码】

我正在写一个中等大小(一些KLOC)PyQt应用程序.我开始用漂亮的模块编写它以便于理解,但我正在研究Python命名空间的规则.在几个点上,重要的是仅将类的一个对象实例化为其他代码的资源. 例如:表示Aspell作为子进程附加的对象,提供check(word)方法.另一个例子:该应用程序具有单个QTextEdit,而其他代码需要调用此单个对象的方法,例如“如果theEditWidget.document().isEmpty()…” 无论我在哪里实例化这样的对象,它都只能从该模块中的...

python – 代码样式 – “展平”包的命名空间【代码】

我的包层次结构:InstrumentController/__init__.pyinstruments/__init__.py_BaseInstrument.pyKeithley2000.py# etc...仪器文件的内容:# _BaseInstrument.py class _BaseInstrument(object):"""Base class for instruments"""# etc...# Keithley2000.py from InstrumentController.instruments._BaseInstrument import _BaseInstrument class Keithley2000(_BaseInstrument):# etc...我希望我的用户能够访问类而无需深入研究模块...

Python模块xml.etree.ElementTree自动修改xml命名空间键【代码】

我注意到python ElementTree模块,在以下简单示例中更改了xml数据:import xml.etree.ElementTree as ET tree = ET.parse("./input.xml") tree.write("./output.xml")我不希望它改变,因为我做了简单的读写测试而没有任何修改.然而,结果显示了不同的故事,特别是在命名空间索引(nonage – > ns0,d3p1 – > ns1,i – > ns2)中: input.xml中:<?xml version="1.0" encoding="utf-8"?> <ServerData xmlns:i="http://www.a.org" xmlns...

在Python中添加本地命名空间?【代码】

Python中是否有一种方法可以通过调用函数来添加到本地名称空间而无需在本地显式分配变量? 例如下面的内容(当然这不起作用,因为locals()返回本地名称空间的副本),其中print语句将打印“1”.def A():B(locals())print xdef B(d):d['x'] = 1解决方法:在Python 2. *中,您可以通过使用exec”启动函数来禁用Python编译器对局部变量访问执行的常规优化;这将使功能变得非常慢(我刚刚发布,今天早些时候,一个答案显示本地变量优化如何轻松地...

IPython并行计算命名空间问题【代码】

我一直在阅读和重新阅读IPython文档/教程,我无法弄清楚这段特殊代码的问题.似乎函数dimensionless_run对于传递给每个引擎的命名空间是不可见的,但我很困惑因为函数在__main__中定义,并且作为全局命名空间的一部分清晰可见. wrapper.py:import math, osdef dimensionless_run(inputs):output_file = open(inputs['fn'],'w')...return output_statsdef parallel_run(inputs):import math, os ## Removing this line causes a NameE...

python – 在自定义命名空间中调用execfile()在’__builtin__’命名空间中执行代码【代码】

当我调用execfile而不传递globals或locals参数时,它会在当前命名空间中创建对象,但是如果我调用execfile并为globals(和/或locals)指定一个dict,它会在__builtin__命名空间中创建对象. 请看以下示例:# exec.py def myfunc():print 'myfunc created in %s namespace' % __name__exec.py是从main.py execfile’d,如下所示.# main.py print 'execfile in global namespace:' execfile('exec.py') myfunc() print print 'execfile i...

Python:通过函数导入到主命名空间【代码】

(重要信息:请参阅下面的更新.) 我正在尝试编写一个函数,import_something,这将是重要的某些模块. (对于这个问题,这并不重要.)问题是,我希望在调用函数的级别导入这些模块.例如:import_something() # Let's say this imports my_module my_module.do_stuff() #这可能吗? 更新: 对不起,我原来的措辞和例子都是误导.我会尝试解释我的整个问题.我所拥有的是一个包,其中包含一些模块和包.在__init__.py中我想导入所有模块和包.所以在...