我无法理解为什么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如何比签名更有用?
有没有人在现实世界的应用程序中使用Bridge Pattern?如果是这样,你是如何使用它的?是我,还是仅仅是适配器模式,在混合中引入了一点依赖注入?它真的值得拥有自己的模式吗?
我曾经习惯copydir复制目录树但不推荐使用它.我的目录包含一些子目录,其中一些包含文件,另一些包含更多子目录.
我怎样才能复制整棵树?
我的问题是:从其字符串名称实例化一个类,该名称描述了如何在拥有名称时实例化一个类.有没有办法在Java中做到这一点?我将拥有包名和类名,我需要能够创建具有该特定名称的对象.
我正在使用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在给定存储桶中是否存在密钥.我查看了API,但没有任何方法有用.我试图使用,getObject但它抛出异常.
我想将AngularJS和Twitter Bootstrap整合到一个全新的Web应用程序中.似乎已经为Bootstrap编写了AngularJS指令.
但是,仔细观察,似乎这些指令并未涵盖所有Bootstrap.我可以将AngularUI Bootstrap代码与原始Bootstrap结合使用以获得完整性吗?它可以在第一时间完成吗?
我偶然发现了另一个名为AngularStrap的 Angular项目.我能把这三个结合起来吗?
将AngularJS和Twitter Bootstrap结合起来以获得完整性的最佳方法是什么?
javascript twitter-bootstrap angularjs angular-ui-bootstrap angular-strap
如何将详细垃圾收集输出重定向到文件?Sun的网站显示了Unix的一个例子,但它不适用于Windows.
我已经熟悉了C中的信号.我无法弄清楚是什么类型的信号SIGUSR1,SIGUSR2我怎么能触发它们.有人可以向我解释一下吗?
我已全局分配C-c/到ace-jump-mode但是reftex-mode(与AucTeX一起使用的引用的次要模式)用我从未使用过的某个函数覆盖了这个键.
我试过local-unset-key但它只解除了当前主要模式地图中的键.
如何C-c/在reftex-mode-map不更改reftex.el的情况下删除?