Tag: python

解释testing用例中使用的“setUp”和“tearDown”Python方法

任何人都可以解释使用Python的setUp和tearDown方法,除了在调用testing方法之前立即调用setUp和在调用tearDown之后立即调用testing用例吗?

将“yield from”语句转换为Python 2.7代码

我在Python 3.2中有一个代码,我想在Python 2.7中运行它。 我没有转换它(已经把两个版本中的missing_elements的代码),但我不知道这是否是最有效的方式来做到这一点。 基本上,如果在missing_element函数中有两个yield from类似下面的调用的上半部分和下半部分,会发生什么情况? 来自两个半部分(上部和下部)的条目是否在一个列表中相互追加,以便父代recursion函数与yield from调用的yield from一起使用并将两个半部分一起使用? def missing_elements(L, start, end): # Python 3.2 if end – start <= 1: if L[end] – L[start] > 1: yield from range(L[start] + 1, L[end]) return index = start + (end – start) // 2 # is the lower half consecutive? consecutive_low = L[index] == L[start] […]

使用BeautifulSoup来查找包含特定文本的HTML标签

我试图获取HTML文档中包含以下模式的文本元素:#\ S {11} <h2> this is cool #12345678901 </h2> 所以,以前会使用: soup('h2',text=re.compile(r' #\S{11}')) 结果会是这样的: [u'blahblah #223409823523', u'thisisinteresting #293845023984'] 我能够得到所有匹配的文本(见上面的行)。 但是我想要文本的父元素匹配,所以我可以使用它作为遍历文档树的起点。 在这种情况下,我想要所有的h2元素返回,而不是文本匹配。 想法?

在几个进程之间共享一个结果队列

multiprocessing模块的文档显示了如何将一个队列传递multiprocessing.Process启动的进程。 但是,我怎样才能与由apply_async启动的asynchronous工作进程共享一个队列呢? 我不需要dynamicjoin或其他任何东西,只是一种让工人(反复)将结果报告回基地的方法。 import multiprocessing def worker(name, que): que.put("%d is done" % name) if __name__ == '__main__': pool = multiprocessing.Pool(processes=3) q = multiprocessing.Queue() workers = pool.apply_async(worker, (33, q)) 这失败了: RuntimeError: Queue objects should only be shared between processes through inheritance 。 我明白这意味着什么,我理解inheritance的build议,而不是要求酸洗/取消(以及所有特殊的Windows限制)。 但是,我如何以一种有效的方式来传递队列呢? 我找不到一个例子,而且我尝试了几种以各种方式失败的替代scheme。 请帮助?

unit testing使用请求库的Python应用程序

我正在编写一个使用Kenneth Reitz的请求库来执行REST操作的应用程序,我正在努力寻找一种很好的方式来对这些应用程序进行unit testing,因为请求通过模块级别的方法提供了它的方法。 我想要的是综合双方对话的能力; 提供一系列请求断言和响应。

sphinx-build失败 – autodoc无法导入/查找模块

我试图开始与狮身人面像,似乎有无情的问题。 命令: docs/sphinx-quickstart 我回答所有的问题,一切正常。 命令: docs/ls 一切看起来很正常 结果: build Makefile source 命令: sphinx-build -d build/doctrees source build/html 这似乎工作。 我能够打开index.html文件,看到我想要的“壳”。 当我尝试将我的实际源代码作为source文件夹时遇到问题。 命令: sphinx-build -d build/doctrees ../ys_utils build/html 结果: Making output directory… Running Sphinx v1.1.3 loading pickled environment… not yet created No builder selected, using default: html loading intersphinx inventory from http://docs.python.org/objects.inv… building [html]: targets for 1 […]

狮身人面像可以链接到不在根目录下的目录中的文件吗?

我正在使用Sphinx来logging一个非Python项目。 我想在每个子模块中分发./doc文件夹,其中包含submodule_name.rst文件来logging该模块。 然后,我想将这些文件吸收到主层次结构中,为整个devise创build一个规范。 即: Project docs spec project_spec.rst conf.py modules module1 docs module1.rst src module2 docs module2.rst src 我试图在主project_spec.rst文档toctree中包含这样的文件: .. toctree:: :numbered: :maxdepth: 2 Module 1 <../../modules/module1/docs/module1> 但是,这个错误信息的结果 警告:toctree包含对不存在的文档的引用u'modules / module1 / docs / module1' 以某种方式在文档path中使用../是不可能的? 更新:添加conf.py位置

Djangopipe理员:OneToOne关系作为内联?

我正在把一个satchmo应用程序的pipe理员放在一起。 Satchmo使用OneToOne关系来扩展基本Product模型,并且我想在一页上进行编辑。 一个OneToOne关系可以作为一个Inline吗? 如果不是,最好的方法是添加几个字段到我的pipe理员的一个给定的页面,最终将被保存到OneToOne关系? 例如: class Product(models.Model): name = models.CharField(max_length=100) … class MyProduct(models.Model): product = models.OneToOne(Product) … 我试过这个我的pipe理员,但它不工作,似乎期望一个外键: class ProductInline(admin.StackedInline): model = Product fields = ('name',) class MyProductAdmin(admin.ModelAdmin): inlines = (AlbumProductInline,) admin.site.register(MyProduct, MyProductAdmin) 哪个抛出这个错误: <class 'satchmo.product.models.Product'> has no ForeignKey to <class 'my_app.models.MyProduct'> 自定义表单是唯一的方法吗? 编辑:只是试过下面的代码直接添加字段…也不起作用: class AlbumAdmin(admin.ModelAdmin): fields = ('product__name',)

为什么使用lambda函数?

我可以find很多东西,告诉我什么是lambda函数,语法是如何工作的,什么不是。 但除了“酷炫的因素”(我可以在中间调用另一个函数,很整洁!)我还没有看到过分强烈的说法,为什么我真的需要/想要使用它们。 在我看到的大多数例子中,它似乎更像是一种风格或结构的select。 在python规则中,打破了“只有一个正确的做法”。 它是如何使我的程序更正确,更可靠,更快,更容易理解? (我所见过的大多数编码标准都倾向于告诉你避免在单一行上写出过于复杂的语句,如果这样可以更容易地阅读它。

组织我的Python项目

我正在开始一个Python项目,并期望在其中有20个或更多的类。 至于好的做法,我想把它们放在一个单独的文件中。 但是,项目目录很快就会被文件淹没(或者当我这样做的时候)。 如果我把一个文件导入一个文件夹,我不能再导入它。 如何从另一个文件夹中导入文件,并且现在我需要引用它所包含的类,然后将它放在一个文件夹中? 提前致谢