Tag: python

如何unit testingGoogle Cloud Endpoints

我需要一些帮助为Google Cloud Endpoint设置unit testing。 使用WebTest的所有请求与AppError答案:错误的响应:404未find。 我不确定terminal是否与WebTest兼容。 这是如何生成应用程序: application = endpoints.api_server([TestEndpoint], restricted=False) 然后我用这种方式使用WebTest: client = webtest.TestApp(application) client.post('/_ah/api/test/v1/test', params) curltesting工作正常。 我应该为不同的端点编写testing吗? GAE端点小组的build议是什么?

为什么不总是使用Python代码的psyco?

psyco似乎对优化Python代码非常有帮助,而且它以一种非侵入性的方式进行。 因此,人们不得不怀疑。 假设你总是使用x86架构(这是大多数应用程序最近运行的地方),为什么不总是使用psyco来处理所有的Python代码呢? 它有时会犯错误,破坏程序的正确性吗? 增加运行时的一些奇怪的情况? 你有没有消极的经历呢? 到目前为止,我最负面的经验是它使我的代码更快了15%。 通常情况下会更好 当然,使用psyco并不能取代高效的algorithm和编码。 但是,如果你可以改善你的代码的性能两行(导入和调用psyco)的成本,我没有理由不要。

哪个Actor模型库/框架适用于python和Erlang?

我正在寻找一个易于学习的Actor库或Python 2.x的框架。 我尝试了Candygram和Twisted,但我不喜欢它们。 我想要一个很容易扩展到suppero Greenlet(= stackless python)的东西。 Candygram太旧了。 扭曲太复杂了。 Gevent:目前还不清楚是否可以支持Actors模式。 你有什么build议?

如果range()是Python 3.3中的一个生成器,为什么我不能在一个范围内调用next()?

也许我已经成为networking上的错误信息的受害者,但我认为这更可能只是我误解了一些东西。 根据我迄今为止所了解的内容,range()是一个生成器,生成器可以用作迭代器。 但是,这个代码: myrange = range(10) print(next(myrange)) 给我这个错误: TypeError: 'range' object is not an iterator 我在这里错过了什么? 我期待这打印0,并提前在myrange下一个值。 我是Python的新手,所以请接受我对这个基本问题的道歉,但是在其他地方我找不到一个好的解释。

GridSpec与Python中的共享轴

另一个线程的解决schemebuild议使用gridspec.GridSpec而不是plt.subplots 。 但是,当我在子图之间共享坐标轴时,我通常使用如下的语法 fig, axes = plt.subplots(N, 1, sharex='col', sharey=True, figsize=(3,18)) 如何在使用GridSpec时指定sharex和GridSpec ?

用PythonparsingSQL

我想在非关系数据存储上创build一个SQL接口。 非关系数据存储,但以关系方式访问数据是有意义的。 我正在研究使用ANTLR生成一个代表SQL作为关系代数expression式的AST。 然后通过评估/行走树来返回数据。 我从来没有实现过一个parsing器,因此我想就如何最好地实现SQLparsing器和评估器提供一些build议。 上面描述的方法是否正确? 还有其他的工具/库我应该看看? 像PLY或Pyparsing一样 。 指向将帮助我的文章,书籍或源代码是赞赏。 更新: 我使用pyparsing实现了一个简单的SQLparsing器。 结合对我的数据存储实现关系操作的Python代码,这非常简单。 正如我在其中一个评论中所说的那样,这个练习的重点是使数据可用于报告引擎。 要做到这一点,我可能需要实现一个ODBC驱动程序。 这可能是很多工作。

如何编写自定义的Python日志处理程序?

如何编写自定义控制台日志function,只在控制台窗口上输出日志消息,在一行(不追加),直到第一个常规的日志logging。 progress = ProgressConsoleHandler() console = logging.StreamHandler() logger = logging.getLogger('test') logger.setLevel(logging.DEBUG) logger.addHandler(console) logger.addHandler(progress) logger.info('test1') for i in range(3): logger.progress('remaining %d seconds' % i) time.sleep(1) logger.info('test2') 所以控制台输出只有三行: INFO: test1 remaining 0 seconds… INFO: test2 有关如何实现这个最好的方法的任何build议?

Python中yieldexpression式的结果是什么?

我知道yield会将函数转换为生成器,但yieldexpression式本身的返回值是多less? 例如: def whizbang(): for i in range(10): x = yield i 这个函数执行的variablesx的值是什么? 我已经阅读了Python文档: http : //docs.python.org/reference/simple_stmts.html#grammar-token-yield_stmt ,似乎没有提到yieldexpression式本身的价值。

Flask – POST错误405方法不允许

我刚刚开始学习Flask,并且正在尝试创build一个允许POST方法的表单。 这是我的方法: @app.route('/template', methods=['GET', 'POST']) def template(): if request.method == 'POST': return "Hello" return render_template('index.html') 和我的index.html: <html> <head> <title> Title </title> </head> <body> Enter Python to execute: <form action="/" method="post"> <input type="text" name="expression" /> <input type="submit" value="Execute" /> </form> </body> </html> 加载表单(当它收到GET时呈现)工作正常。 当我点击提交button但是,我得到一个POST 405错误方法不允许。 为什么不显示你好?

如果list 在list 之前,list 保证是一个空列表?

Python教程解释了索引为负数时的切片行为,但是当末尾索引位于开始索引之前时,我找不到描述行为的文档。 (我也看过解释Python的切片符号 ,也许我没有仔细阅读,但答案似乎并没有解决这一点。) 我观察到的行为是返回一个空列表,这对我来说似乎是合理的。 不过,对我来说这样做似乎是合理的,以相反的顺序返回i和j之间的项目列表,或者简单地抛出exception。 如果list[j]在list[i]之前, list[i] list[i:j]保证是一个空列表?