小编Fed*_*oni的帖子

Linux中的独立Python应用程序

如何在Linux中分发独立的Python应用程序?

我想我可以理所当然地认为在任何现代发行版中都有最近的Python解释器.问题是处理那些不属于标准库的库,即wxPython,scipy,python cryptographic toolkit,reportlab等.

是否有一个可用的Linux副本,比方说,py2exe(顺便说一下,我从未尝试过)?有一个免费的,开源的吗?

python linux

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

继承还是构成:依靠"is-a"和"has-a"?

当我设计类并且必须在继承和组合之间进行选择时,我通常使用经验法则:如果关系是"is-a" - 使用继承,如果关系是"has-a" - 使用组合.

总是对的吗?

谢谢.

c++ oop inheritance

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

什么是意大利面条代码?

你能发一个真实的,过度的意大利面条代码的简短例子,可能会说它的作用是什么?你能告诉我一个小调试器的噩梦吗?

我不是指IOCCC代码,那是科幻小说.我的意思是发生在你身上的现实生活例子......

更新

重点已从"发布一些意大利面条代码"到"什么是改变究竟面条代码?".从历史的角度来看,目前的选择似乎是:

  • 旧的Fortran代码大量使用compute gotos
  • 使用ALTER语句的旧Cobol代码

terminology anti-patterns

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

如果没有在一小时内结束,请运行一个进程并将其终止

我需要在Python中执行以下操作.我想生成一个进程(子进程模块?),并且:

  • 如果过程正常结束,从它终止的那一刻起就完全继续;
  • 如果,否则,进程"卡住"并且不会在(例如)一小时内终止,以杀死它并继续(可能在循环中再次尝试).

实现这一目标的最优雅方式是什么?

python kill process

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

滥用设计模式

在经典的"四人帮"列表中,您是否经常发现任何被滥用,误解或过度使用的设计模式(除了备受争议的单身人士之外)?换句话说,有没有一种设计模式,建议您在使用前三思而后行?(为什么?)

oop design-patterns anti-patterns

19
推荐指数
4
解决办法
2243
查看次数

我们应该将浮点数与相对*误差进行比较吗?

到目前为止,我已经看到很多关于浮点数相等的帖子.对于"我们应该如何决定x和y是否相等?"这样的问题的标准答案.是

abs(x - y) < epsilon
Run Code Online (Sandbox Code Playgroud)

其中epsilon是一个固定的小常数.这是因为"操作数"x和y通常是涉及舍入误差的某些计算的结果,因此标准相等运算符==不是我们的意思,我们应该问的是x和y是否接近,不相等.

现在,我觉得如果x与y"几乎相等",那么x*10 ^ 20也应该与y*10 ^ 20"几乎相等",因为相对误差应该是相同的(但是"相对的" "到底是什么?" 但是对于这些大数字,上述测试将失败,即该解决方案不会"扩展".

你会如何处理这个问题?我们应该重新调整数字还是重新调整epsilon?怎么样?(或者我的直觉是错的吗?)

这是一个相关的问题,但我不喜欢它接受的答案,因为reinterpret_cast对我来说似乎有点棘手,我不明白发生了什么.请尝试提供简单的测试.

language-agnostic math floating-point comparison

15
推荐指数
2
解决办法
4963
查看次数

通用约束和接口实现/继承

不完全确定如何表达这个问题,因为它是"为什么这不起作用?" 查询类型.

我已将我的特定问题减少到此代码:

public interface IFoo
{
}

public class Foo : IFoo
{
}

public class Bar<T> where T : IFoo
{
    public Bar(T t)
    {
    }

    public Bar()
        : this(new Foo()) // cannot convert from 'Foo' to 'T'
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,通用类型TBar<T>必须实现IFoo的.那么为什么编译器会在评论中给出错误?当然,Foo的一个实例是IFoo,因此可以作为泛型类型的代表传递T

这是编译器限制还是我遗漏了什么?

c# generics

13
推荐指数
1
解决办法
3123
查看次数

字符串不能改变.但是int,char可以改变

我已经读过,在Java中,String类型的对象无法更改.但int和char变量可以.为什么?能给我举个例子?

谢谢.(我是新手-_-)

java string int char

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

焦油的有趣用法......但是发生了什么?

我在同事的Bash脚本中看到了tar的以下有趣用法:

`tar cf - * | (cd <dest> ; tar xf - )`
Run Code Online (Sandbox Code Playgroud)

显然它的工作方式与rsync -av相似,但速度更快.问题出现了,怎么样?

-m


编辑:任何人都可以解释为什么这个解决方案优于以下?

cp -rfp * dest
Run Code Online (Sandbox Code Playgroud)

前者更快吗?

bash scripting tar

10
推荐指数
3
解决办法
2739
查看次数

如何迭代计算笛卡尔积?

这个问题询问如何计算给定数量向量的笛卡尔乘积.由于向量的数量是预先知道的并且相当小,因此使用嵌套的for循环很容易获得解决方案.

现在假设您以您选择的语言给出了向量(或列表列表或集合等)的向量:

l = [ [1,2,3], [4,5], [6,7], [8,9,10], [11,12], [13] ]
Run Code Online (Sandbox Code Playgroud)

如果我被要求计算其笛卡尔积,那就是

[ [1,4,6,8,11,13], [1,4,6,8,12,13], [1,4,6,9,11,13], [1,4,6,9,12,13], ... ]
Run Code Online (Sandbox Code Playgroud)

我会继续递归.例如,在快速和肮脏的python中,

def cartesianProduct(aListOfLists):
    if not aListOfLists:
        yield []
    else:
        for item in aListOfLists[0]:
            for product in cartesianProduct(aListOfLists[1:]):
                yield [item] + product
Run Code Online (Sandbox Code Playgroud)

有一种简单的方法可以迭代计算它吗?

(注意:答案不需要在python中,无论如何我都知道在python中,itertools可以更好地完成工作,就像在这个问题中一样.)

language-agnostic iteration algorithm cartesian-product

10
推荐指数
1
解决办法
6100
查看次数