小编mal*_*ana的帖子

为什么Python没有签名功能?

我无法理解为什么Python没有sign函数.它有一个abs内置(我认为sign是它的妹妹),但没有sign.

在python 2.6中甚至有一个copysign函数(在数学中),但没有符号.copysign(x,y)当你只能写一个sign然后copysign直接从中获取时,为什么还要写一个abs(x) * sign(y)?后者会更加清晰:x带有y的符号,而对于copysign,你必须记住它的x是否带有y或y的符号,带有x的符号!

显然sign(x)不提供任何东西cmp(x,0),但它也会更具可读性(对于像python这样的高可读性语言,这本来是一个很大的优点).

如果我是一名蟒蛇设计师,那我就是另一种方式:没有cmp内置,而是一个sign.当你需要时cmp(x,y),你可以做一个sign(x-y)(或者,甚至更好的非数字的东西,只是一个x> y - 当然这应该需要sorted接受一个布尔而不是一个整数比较器).这也将更加清晰:正时x>y(而与cmp你必须记住公约正值当第一个,但它可能是周围的其他方式).当然cmp,由于其他原因(例如,在排序非数字事物时,或者如果您希望排序稳定,这是不可能使用简单的布尔值)

所以,问题是:为什么Python设计师决定将该sign功能从语言中删除?为什么麻烦copysign而不是它的父母sign呢?

我错过了什么吗?

编辑 - 在彼得汉森评论之后.很公平,你没有使用它,但你没有说你使用python的.在我使用蟒蛇的7年中,我无数次需要它,最后一根是打破骆驼背部的稻草!

是的,你可以通过cmp,但是我需要通过它的90%的时间都是这样的成语,就像 lambda x,y: cmp(score(x),score(y))用标志就好了.

最后,我希望你同意这sign会比这更有用copysign,所以即使我买了你的观点,为什么还要在数学中定义它而不是标志呢?copysign如何比签名更有用?

python language-design

217
推荐指数
10
解决办法
12万
查看次数

你什么时候使用桥模式?它与适配器模式有何不同?

有没有人在现实世界的应用程序中使用Bridge Pattern?如果是这样,你是如何使用它的?是我,还是仅仅是适配器模式,在混合中引入了一点依赖注入?它真的值得拥有自己的模式吗?

design-patterns bridge adapter

150
推荐指数
10
解决办法
8万
查看次数

如何使用Ant复制目录

我曾经习惯copydir复制目录树但不推荐使用它.我的目录包含一些子目录,其中一些包含文件,另一些包含更多子目录.

我怎样才能复制整棵树?

java ant

97
推荐指数
4
解决办法
8万
查看次数

有没有办法在Java中按名称实例化一个类?

我的问题是:从其字符串名称实例化一个类,该名称描述了如何在拥有名称时实例化一个类.有没有办法在Java中做到这一点?我将拥有包名和类名,我需要能够创建具有该特定名称的对象.

java string object instantiation

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

使用Jackson的ObjectMapper的JSON对象的顺序

我正在使用ObjectMapper来做我的java-json映射.

ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter();
ow.writeValue(new File( fileName +".json"), jsonObj);
Run Code Online (Sandbox Code Playgroud)

这是我的java类:

public class Relation {

private String id;
private String source;
private String target;
private String label;
private List<RelAttribute> attributes;

public String getId() {
    return id;
}

public void setId(String id) {
    this.id = id;
}

public String getSource() {
    return source;
}

public void setSource(String source) {
    this.source = source;
}

public String getTarget() {
    return target;
}

public void setTarget(String target) {
    this.target = target; …
Run Code Online (Sandbox Code Playgroud)

java json jackson

78
推荐指数
4
解决办法
5万
查看次数

如何使用Java检查给定S3存储桶中是否存在指定的密钥

我想检查使用Java在给定存储桶中是否存在密钥.我查看了API,但没有任何方法有用.我试图使用,getObject但它抛出异常.

java amazon-s3 amazon-web-services aws-sdk

74
推荐指数
8
解决办法
11万
查看次数

结合AngularJS和Twitter Bootstrap的最佳方式

我想将AngularJS和Twitter Bootstrap整合到一个全新的Web应用程序中.似乎已经为Bootstrap编写了AngularJS指令.

但是,仔细观察,似乎这些指令并未涵盖所有Bootstrap.我可以将AngularUI Bootstrap代码与原始Bootstrap结合使用以获得完整性吗?它可以在第一时间完成吗?

我偶然发现了另一个名为AngularStrap的 Angular项目.我能把这三个结合起来吗?

将AngularJS和Twitter Bootstrap结合起来以获得完整性的最佳方法是什么?

javascript twitter-bootstrap angularjs angular-ui-bootstrap angular-strap

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

如何将详细垃圾收集输出重定向到文件?

如何将详细垃圾收集输出重定向到文件?Sun的网站显示了Unix的一个例子,但它不适用于Windows.

java garbage-collection jdk1.5

68
推荐指数
4
解决办法
12万
查看次数

如何触发SIGUSR1和SIGUSR2?

我已经熟悉了C中的信号.我无法弄清楚是什么类型的信号SIGUSR1,SIGUSR2我怎么能触发它们.有人可以向我解释一下吗?

c signals

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

如何从Emacs中的次模式键映射中删除键?

我已全局分配C-c/到ace-jump-mode但是reftex-mode(与AucTeX一起使用的引用的次要模式)用我从未使用过的某个函数覆盖了这个键.

我试过local-unset-key但它只解除了当前主要模式地图中的键.

如何C-c/reftex-mode-map不更改reftex.el的情况下删除?

emacs elisp keyboard-shortcuts

33
推荐指数
2
解决办法
7736
查看次数