小编But*_*840的帖子

如何设计扭曲的工厂来处理断开连接?

我在模块中有一个ReconnectingClientFactory.我希望模块尽可能灵活.我只需要一个TCP连接.我使用工厂作为此连接的持久接口.在过去,工厂会通过无休止地重试连接来响应断开连接,从不通知顶级脚本(导入模块的脚本)存在连接问题.

以下是我所拥有的一个简短示例:

Factory(protocol.ReconnectingClientFactory):

    def clientConnectionFailed(self, connector, reason):
        ...

    def clientConnectionLost(self, connector, reason):
        ...
Run Code Online (Sandbox Code Playgroud)

我认为最好是在出现连接问题时通知顶级脚本(导入模块的脚本).这样,顶级脚本可以定义断开连接解析行为,而不是在模块中对其进行硬编码.但是,将连接问题传达给顶级脚本的最佳方法是什么?

我可以提出异常,但它会被捕获到哪里?我想反应堆会抓住它,但这有什么帮助呢?

没有回调或错误我可以触发通知顶部脚本的连接问题.

顶级脚本可以提供在发生连接问题时要调用的特定函数[作为参数].这是好的设计吗?

python twisted

5
推荐指数
1
解决办法
1402
查看次数

如何在Eclipse中突出显示多个变量?

在Eclipse中,如果将光标放在变量上,它将在代码中的任何位置突出显示该变量.我想知道如何一次突出多个变量?

java eclipse ide

5
推荐指数
1
解决办法
503
查看次数

比较文件夹时,如何检测移动或重命名的文件?

我正在使用 diff 工具比较两个文件夹。我尝试了几种不同的 diff 工具,但现在我使用 WinMerge。有许多文件显示为右侧或左侧独有,例如:

右边我们有:/bar/some_organized_characters.txt

左边我们有:/foo/some_similar_organized_characters.txt

文本文件可能略有不同,但大部分相似。我希望大多数合并/差异工具中都存在一个工具,它可以告诉您这些文件可能是“相同的”(意味着它们具有相同的基础),但文件已被移动、重命名和稍微修改。

我特别想做的是“供应商合并”。我们有一些定制软件,我们希望将最近正式版本中的更改与我们所做的更改合并。许多文件在最新的官方版本中已经移动,手动查找每个移动/重命名是很困难的。

diff

5
推荐指数
1
解决办法
1319
查看次数

在Python中模拟关系数据(或数据库)?

我经常使用Python来为其他平台创建原型,这是各种各样的便笺.现在我想在数据库中使用与关系数据相关的一些想法.

在Python中表示数据库的最佳方法是什么?一组元组?使用像SQLite这样的模块?

我正在寻找Python中的简单解决方案.如果解决方案太"数据库",我也会在数据库本身进行原型设计.

更新:我实际上不会在数据库中使用Python(我甚至没有特定的数据库),我只想用代码来思考"如果我有X关系数据,我可以回答Y问题,以及解决Z问题?"

python relational-database data-structures

5
推荐指数
1
解决办法
1452
查看次数

使用权重分布整数?如何计算?

我需要根据一些权重分配一个值。例如,如果我的权重是 1 和 2,那么我希望权重为 2 的列的值是权重为 1 的列的两倍。

我有一些 Python 代码来演示我正在尝试做什么,以及问题:

def distribute(total, distribution):
    distributed_total = []
    for weight in distribution:
        weight = float(weight)
        p = weight/sum(distribution)
        weighted_value = round(p*total)
        distributed_total.append(weighted_value)
    return distributed_total

for x in xrange(100):
    d = distribute(x, (1,2,3))
    if x != sum(d):
        print x, sum(d), d
Run Code Online (Sandbox Code Playgroud)

上面的代码显示了许多情况,其中分配值会导致分配的总和与原始值不同。例如,分配权重为 (1,2,3) 的 3 结果为 (1,1,2),总共为 4。

修复此分布算法的最简单方法是什么?

更新:

我希望分布值是整数值。只要整数的总和为正确的值,并且它们“尽可能接近”正确的分布,那么整数的确切分布并不重要。

(正确分布是指非整数分布,我还没有完全定义“尽可能接近”的意思。也许有几个有效的输出,只要它们是原始值的总和。)

python algorithm

5
推荐指数
1
解决办法
4363
查看次数

如何区分分层数据?

有没有可以区分层次结构的工具?

IE,考虑以下层次结构:

A has child B.
B has child C.
Run Code Online (Sandbox Code Playgroud)

与以下内容相比:

A has child B.
A has child C.
Run Code Online (Sandbox Code Playgroud)

我想要一个工具来显示 C 已从 B 的子级移动到 A 的子级。是否存在此类实用程序?如果没有特定的工具,我不反对自己编写,那么有哪些适用于这个问题的好算法呢?

diff hierarchical-data

5
推荐指数
1
解决办法
1578
查看次数

如何使用除IDLE之外的东西以交互方式调试Python中的异常?

当我使用IDLE运行脚本时,如果脚本遇到异常并且执行停止,那么我将留下一个交互式shell,我可以用它来调查异常时的应用程序状态.这真的很好,但我发现IDLE缺乏编辑器.有没有一种方法可以让我在不使用IDLE的情况下"放弃异常交互式shell"行为?在此输入图像描述

python ide python-idle

5
推荐指数
2
解决办法
2152
查看次数

Python多久切换一次线程?

在cPython(默认的Python实现)中,线程切换的频率是多少?这不是关于使用多核的问题; 我知道GIL,并意识到只有一个线程会在时间运行.

我已经看到一些情况,我按顺序有两条日志消息,第一条日志消息将被发出,但第二条消息不会被发出几秒钟.这可能是因为Python决定在两个日志语句之间切换线程.这让我相信Python每隔几秒就会在线程之间切换一次,这比我预期的要慢得多.它是否正确?

python multithreading

4
推荐指数
2
解决办法
2676
查看次数

可以在 SQLAlchemy 中执行没有子查询的 UNION 吗?

另一个问题展示了如何在 SQLAlchemy 中进行联合。

是否可以在不使用子查询的情况下在 SQLAlchemy 中执行联合?

例如,在链接的问题中,SQLAlchemy 生成以下形式的 SQL:

SELECT * FROM (SELECT column_a FROM table_a UNION SELECT column_b FROM table_b)

但我希望 SQLAlchemy 生成如下 SQL:

SELECT column_a FROM table_a UNION SELECT column_b FROM table_b

后一个 SQL 更短,不使用子查询,并且执行相同的操作。SQLAlchemy 可以像后一个查询一样生成联合吗?

sqlalchemy

4
推荐指数
1
解决办法
3956
查看次数

zope.interface可以定义类'__init__方法应该如何看?

我有几个类似的类,它们都将由相同的代码初始化,因此需要具有相同的"构造函数签名".(在动态Python中是否真的有构造函数和签名?我离题了.)

使用zope.interface定义类__init __参数的最佳方法是什么?

我将粘贴一些我用于试验zope.interface的代码以方便讨论:


from zope.interface import Interface, Attribute, implements, verify

class ITest(Interface):
    required_attribute = Attribute(
        """A required attribute for classes implementing this interface.""")
    def required_method():
        """A required method for classes implementing this interface."""

class Test(object):
    implements(ITest)
    required_attribute = None
    def required_method():
        pass

print verify.verifyObject(ITest, Test())
print verify.verifyClass(ITest, Test)
Run Code Online (Sandbox Code Playgroud)

我不能只在ITest中定义一个__ init __函数,因为它将由Python解释器专门处理 - 我想?无论如何,它似乎都不起作用.那么,使用zope.interface定义"类构造函数"的最佳方法是什么?

python zope

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