小编Pau*_*ine的帖子

实际上,Python 3.3中新的"yield from"语法的主要用途是什么?

我很难将我的大脑包裹在PEP 380周围.

  1. "收益率"有用的情况是什么?
  2. 什么是经典用例?
  3. 为什么它与微线程相比?

[更新]

现在我明白了我的困难的原因.我使用过发电机,但从未真正使用过协程(由PEP-342引入).尽管有一些相似之处,但生成器和协同程序基本上是两个不同的概念.理解协同程序(不仅仅是生成器)是理解新语法的关键.

恕我直言协程是最晦涩的Python功能,大多数书籍使它看起来毫无用处和无趣.

感谢您的回答,但特别感谢agf和他与David Beazley演讲相关的评论.大卫摇滚.

python yield

349
推荐指数
7
解决办法
9万
查看次数

小马(ORM)如何做其伎俩?

Pony ORM做了将生成器表达式转换为SQL的好方法.例:

>>> select(p for p in Person if p.name.startswith('Paul'))
        .order_by(Person.name)[:2]

SELECT "p"."id", "p"."name", "p"."age"
FROM "Person" "p"
WHERE "p"."name" LIKE "Paul%"
ORDER BY "p"."name"
LIMIT 2

[Person[3], Person[1]]
>>>
Run Code Online (Sandbox Code Playgroud)

我知道Python内置了精彩的内省和元编程,但是这个库如何能够在不进行预处理的情况下转换生成器表达式?它看起来像魔术.

[更新]

Blender写道:

这是你要追求的文件.它似乎使用一些内省魔法重建了生成器.我不确定它是否支持100%的Python语法,但这非常酷.- 搅拌机

我在想他们正在探索生成器表达式协议的一些功能,但是查看这个文件,并看到所ast涉及的模块......不,他们不是在动态检查程序源,是吗?令人兴奋...

@BrenBarn:如果我尝试在select函数调用之外调用生成器,结果是:

>>> x = (p for p in Person if p.age > 20)
>>> x.next()
Traceback (most recent call last):
  File "<interactive input>", line 1, in <module>
  File "<interactive input>", line 1, in <genexpr>
  File "C:\Python27\lib\site-packages\pony\orm\core.py", …
Run Code Online (Sandbox Code Playgroud)

python orm dsl metaprogramming ponyorm

108
推荐指数
1
解决办法
1万
查看次数

jQuery中的正则表达式字段验证

在jQuery中,是否有一个函数/插件可以用来匹配字符串中给定的正则表达式?

例如,在电子邮件输入框中,我收到一个电子邮件地址,并希望查看它是否格式正确.我应该使用什么jQuery函数来查看我的验证正则表达式是否与输入匹配?

我已经google了解决方案,但我找不到任何东西.

regex jquery

75
推荐指数
4
解决办法
30万
查看次数

AssertionError:视图函数映射覆盖现有端点函数:main

有没有人知道为什么我不能覆盖现有的端点函数,如果我有这样的两个网址规则

app.add_url_rule('/',
                 view_func=Main.as_view('main'),
                 methods=["GET"])

app.add_url_rule('/<page>/',
                 view_func=Main.as_view('main'),
                 methods=["GET"])
Run Code Online (Sandbox Code Playgroud)

追溯:

Traceback (most recent call last): 
  File "demo.py", line 20, in <module> methods=["GET"]) 
  File ".../python2.6/site-packages/flask??/app.py", 
    line 62, in wrapper_func return f(self, *args, **kwargs) 
  File ".../python2.6/site-packages/flask??/app.py", 
    line 984, in add_url_rule 'existing endpoint function: %s' % endpoint)  
AssertionError: View function mapping is overwriting an existing endpoint 
    function: main
Run Code Online (Sandbox Code Playgroud)

python flask

64
推荐指数
8
解决办法
7万
查看次数

预处理扫描不良的手写数字

我有几千个包含数字化纸张形式的黑白图像(1位)的PDF文件.我正在尝试OCR一些字段,但有时写作太微弱了:

在此输入图像描述

我刚刚学习了形态变换.他们真的很酷!!! 我觉得我在滥用它们(就像我在学习Perl时用正则表达式做的那样).

我只对日期感兴趣,07-06-2017:

im = cv2.blur(im, (5, 5))
plt.imshow(im, 'gray')
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

ret, thresh = cv2.threshold(im, 250, 255, 0)
plt.imshow(~thresh, 'gray')
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

填写此表单的人似乎对网格有些不屑,所以我试图摆脱它.我可以用这个变换来隔离水平线:

horizontal = cv2.morphologyEx(
    ~thresh, 
    cv2.MORPH_OPEN, 
    cv2.getStructuringElement(cv2.MORPH_RECT, (100, 1)),
)
plt.imshow(horizontal, 'gray')
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我也可以得到垂直线:

plt.imshow(horizontal ^ ~thresh, 'gray')

ret, thresh2 = cv2.threshold(roi, 127, 255, 0)
vertical = cv2.morphologyEx(
    ~thresh2, 
    cv2.MORPH_OPEN, 
    cv2.getStructuringElement(cv2.MORPH_RECT, (2, 15)), 
    iterations=2
)
vertical = cv2.morphologyEx(
    ~vertical, 
    cv2.MORPH_ERODE, 
    cv2.getStructuringElement(cv2.MORPH_RECT, (9, 9))
)
horizontal = cv2.morphologyEx(
    ~horizontal, 
    cv2.MORPH_ERODE, 
    cv2.getStructuringElement(cv2.MORPH_RECT, (7, 7))
)
plt.imshow(vertical & horizontal, 'gray')
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

现在我可以摆脱网格:

plt.imshow(horizontal & vertical …
Run Code Online (Sandbox Code Playgroud)

python ocr opencv

17
推荐指数
1
解决办法
1040
查看次数

向所有人公开django media_url不是不安全吗?

根据Django的文档:"将静态资产与用户上传的文件一起放在MEDIA_ROOT中是很常见的,并在MEDIA_URL上提供它们."

这是否意味着每个人都可以访问其他人上传的文件?这不安全吗?

security django django-staticfiles

9
推荐指数
2
解决办法
788
查看次数

线性X对数刻度

给定X像素长的行像:

0-------|---V---|-------|-------|-------max
Run Code Online (Sandbox Code Playgroud)

如果0 <= V <= max,在线性比例V位置将是X/max*V像素.

如何计算对数刻度的像素位置,并从像素位置开始如何取回V的值?

  1. 这不是功课
  2. 我想知道数学(请不要"使用FOO-plotlib"评论)
  3. 我喜欢Python

对数刻度具有"缩放"刻度左侧的效果.相反,是否有可能为右侧做同样的事情?

[UPDATE]

谢谢你的数学课!

我最终没有使用对数.我只是使用平均值(在一组值中)作为比例的中心.此控件用于为将用于绘制等值线图的一组值选择组边界百分位数.

如果用户选择对称刻度(红色标记=平均值,绿色标记=中心,黑暗表示值的出现次数): 在此输入图像描述

不对称比例使细粒度调整更容易: 在此输入图像描述

python math

8
推荐指数
1
解决办法
3852
查看次数

覆盖operator +以在Python中生成日期+时间=日期时间

我有几个类扩展内置日期时间.*

有没有什么好的理由不重载+(MyTime.__radd___)所以MyDate + MyTime返回一个MyDateTime?

python operator-overloading

7
推荐指数
2
解决办法
1334
查看次数

python selenium清除缓存和cookie

我正在尝试清除我的Firefox浏览器中的缓存和cookie,但我无法让它工作.我已经搜索过了,我只获得了java和C#的解决方案.如何清除Python中的缓存和cookie?

硒版本:3.6.0

平台:python

python版本:2.7.8

webdriver:geckodriver

浏览器平台:Firefox

python cookies selenium caching

7
推荐指数
1
解决办法
2万
查看次数

在Google App Engine中创建表单自动完成

我想为标签字段构建一个自动完成功能,就像App Engine上的SO一样...任何想法我应该如何处理这个过程?

服务器端算法? - 自动完成应该有什么逻辑?

App Engine实施? - 数据存储架构应该是什么?

python ajax google-app-engine autocomplete

6
推荐指数
2
解决办法
3003
查看次数