小编Jes*_*ose的帖子

Pythonic关闭/终止对象的方式

我有一个Whoosh(文件索引器)编写器对象

>>> a
<whoosh.filedb.filewriting.SegmentWriter object at 0x013DFE10>
Run Code Online (Sandbox Code Playgroud)

由于whoosh不允许多个编写者并实现线程安全(AFAIK !!),我想在使用它时关闭该对象.

>>> a.is_closed
False
Run Code Online (Sandbox Code Playgroud)

但它没有密切的方法.我确信所有成熟的python库对象都有内部函数,例如__ exit__,它们允许所有基本功能.关闭Python对象的正确方法是什么?或者它取决于图书馆本身?我以它的字面形式采用Python的"单一但显而易见的正确方法"方式

这是dir(a)的粘贴:http://pastebin.com/Q5hceTr8


后记

我刚刚在前一天通过询问有关Python语句的Confused来了解with语句.这个问题很明显,因为我需要一种处理全局对象的方法; 这样我可以在多次添加或删除后进行提交.好像whoosh有一个searcher.close()而不是一个indexer.close(),这似乎不一致

python multithreading

3
推荐指数
2
解决办法
147
查看次数

`()=> Unit`是什么意思?

就像问题所说的那样.

发现List[() => Unit]它用于存储回调函数.

我理解List[type],这Unit是一个函数的返回类型,不返回任何东西.

syntax types scala

3
推荐指数
1
解决办法
204
查看次数

更好的一个衬垫生成n个空格

是的,这是一个有趣的问题,但我想学习使用集合操作,如map,reduce和fold正确.

我这样做了:

scala> Range(0,3) map(_=>" ") reduceLeft(_+_)
res15: java.lang.String = "   "
Run Code Online (Sandbox Code Playgroud)

使用集合操作生成n个空格的更好,惯用的方法是什么?

scala

3
推荐指数
1
解决办法
1281
查看次数

如何打开ascii编码的文件为UTF8?

我的文件是US-ASCII和一个命令a = file( 'main.html'),a.read()并将它们作为ASCII文本加载.如何将其加载为UTF8?

我要解决的问题是:

UnicodeEncodeError: 'ascii' codec can't encode character u'\xae' in position 38: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)

我正在使用文件的内容进行模板化template_str.format(attrib=val).但是要插入的字符串是ASCII的超集.

我们团队的版本控制和文本编辑器不关心编码.那么如何在代码中处理它呢?

python io file-io ascii utf-8

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

派遣错误处理

我从我的请求中得到了我的回复(简单,阻塞)方式:

val response = Http(req)()
Run Code Online (Sandbox Code Playgroud)

但我从Play中得到了这个错误!框架:

ExecutionException: java.net.ConnectException: Connection refused to http://localhost:8983/update/json?commit=true&wt=json
Run Code Online (Sandbox Code Playgroud)

我从未想过Dispatch或Scala中的异常处理.在Dispatch库中我必须注意哪些错误?捕获每种类型/类错误的语句是什么?

scala playframework

3
推荐指数
1
解决办法
3141
查看次数

为什么我在Python的JSON编码中得到UnicodeDecodeError?

我使用Solr 3.3来索引我的数据库中的东西.我用Python编写JSON内容.我设法上传了2126条记录,共计523246个字符(约511kb).但是当我尝试2027条记录时,Python给了我错误:

Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "D:\Technovia\db_indexer\solr_update.py", line 69, in upload_service_details
    request_string.append(param_list)
  File "C:\Python27\lib\json\__init__.py", line 238, in dumps
    **kw).encode(obj)
  File "C:\Python27\lib\json\encoder.py", line 203, in encode
    chunks = list(chunks)
  File "C:\Python27\lib\json\encoder.py", line 425, in _iterencode
    for chunk in _iterencode_list(o, _current_indent_level):
  File "C:\Python27\lib\json\encoder.py", line 326, in _iterencode_list
    for chunk in chunks:
  File "C:\Python27\lib\json\encoder.py", line 384, in _iterencode_dict
    yield _encoder(value)
UnicodeDecodeError: 'utf8' codec can't decode byte 0x96 in position 68: invalid start byte …
Run Code Online (Sandbox Code Playgroud)

python json

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

哪个python Web框架有无障碍的开发和部署?

我在BaseHTTPServer中编写了一个Web API.它仅用于localhost.它在GET/POST操作上返回JSON对象.

http://localhost:8888/operation?param
Run Code Online (Sandbox Code Playgroud)

和代码就像

def do_GET(self):
   if self.path=="operation":
       self.wfile.write("output")
Run Code Online (Sandbox Code Playgroud)

但我担心保持活动机制(阅读:可以重生工作的网络服务器),缺乏多线程和PITA-ful维护.


就像我说的那样,我正在研究选择这个Web框架的开发部署问题.

发展

Web界面目前有250行,功能非常简单.我正在寻找适合清洁维护和部署的东西.我不希望框架的MVC,ORM,模板和其他功能弄乱我的学习曲线.重定向到适当模块的UrL模式很不错.

部署

它应该部署在具有WSGI模块的成熟服务器上,并且最小化.这样的设置有热部署(想要更好的词),安装新的应用程序或更新代码意味着将文件复制到文件系统中的www-root.


CherryPy和Flask看起来很有趣.Django和Web2Py似乎太全面了.

python cherrypy flask

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

什么类别的算法可用于时间表?

是的,在SO上有很多这样的问题.我看到遗传算法是最常见的答案.

制定时间表时间表

用于创建学校时间表的算法


但是,我担心GA的这些特征

  • 程序的终止条件很难定义
  • 不能轻易逃脱局部极大值

我希望该程序能够被用户轻松推向相互冲突的标准和不可能的解决方案 .

因此,我想要一种方法

  • 决定性的 - 保证达到接近最佳状态报告算法无法达成解决方案
  • 可以采取硬(不可侵犯)限制和软限制
  • 优雅地接受用户输入约束; 如果用户输入不起作用,可以将其添加到代码中而不会破坏它

有100000个尽可能详尽的时间表.


我四处搜索,发现像模拟退火这样的元启发式算法是一个很好的选择.那么动态编程算法呢?

对于这样的数据集,蛮力方法是否合适?

什么是符合标准的好算法?

language-agnostic algorithm artificial-intelligence dynamic-programming genetic-algorithm

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

List和ArrayList的这个陈述是什么意思?

我正在阅读Drools Planner示例,我偶然发现了这样的代码:

List<Column> columnList = new ArrayList<Column>(n);
Run Code Online (Sandbox Code Playgroud)

据我所知,它应该初始化一个存储Column数据类型的长度为n的列表.


但是在表达式的两边有不同的集合数据类型是什么?

如果ArrayList<Column>类型匹配 List<Column>,那么它与做什么不同:

List<Column> columnList = new List<Column>(n);
Run Code Online (Sandbox Code Playgroud)

java

2
推荐指数
3
解决办法
1545
查看次数

如何在Python中自引用一个类?

我希望这个Template类能够接受自己和其他类型的子类type(i) in self._allowed_types.

class Template():
    _allowed_types = [str, Template, SafeHtml]
Run Code Online (Sandbox Code Playgroud)

上面的代码抛出了这个:

NameError: name 'Template' is not defined
Run Code Online (Sandbox Code Playgroud)

python

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