我知道大多数小数都没有精确的浮点表示(浮点数学是否被破坏?).
但我不明白为什么4*0.1
打印得很好0.4
,但3*0.1
不是,当两个值实际上都有丑陋的十进制表示时:
>>> 3*0.1
0.30000000000000004
>>> 4*0.1
0.4
>>> from decimal import Decimal
>>> Decimal(3*0.1)
Decimal('0.3000000000000000444089209850062616169452667236328125')
>>> Decimal(4*0.1)
Decimal('0.40000000000000002220446049250313080847263336181640625')
Run Code Online (Sandbox Code Playgroud) Servlet API说"AsyncContext.start":
void start(java.lang.Runnable run)
使容器可能从托管线程池调度线程,以运行指定的Runnable.容器可以将适当的上下文信息传播到Runnable.
从该描述中不清楚当作业需要等待时它如何与优化线程使用的任务相关.
在"Servlet和JSP"中,Budi Kurniawan给出了Servlet 3.0异步功能的例子,在他使用的地方AsyncContext.start
,我将展示示例的简化版本:
public void doGet(...) {
final AsyncContext asyncContext = request.startAsync();
asyncContext.start(new Runnable() {
@ Override
public void run() {
// do some work here which involves waiting
...
asyncContext.complete();
}
});
}
Run Code Online (Sandbox Code Playgroud)
在我遇到的大多数其他示例中,服务方法只是将AsyncContext存储在某处,并在其他地方处理(例如,通过后台线程).在这个例子中,它似乎只是将作业传递给另一个完成请求的线程.据我所知,现在它只是工作线程,浪费时间等待.
你是否通过将工作(涉及等待)从一个线程传递到另一个线程来获得某些东西?如果没有,那么目的是AsyncContext.start(...)
什么?
Python AST节点具有lineno
和col_offset
属性,它们指示相应代码范围的开始.是否有一种简单的方法可以获得代码范围的结束?第三方图书馆?
"例如,使用Erasure作为泛型的一部分,将函数类型添加到编程语言中要困难得多."
编辑:另一个我遇到类似声明的地方是Brian Goetz 在Lambda Dev邮件列表中的消息,他说当lambdas只是具有语法糖的匿名类时更容易处理:
但我对函数类型的反对并不是我不喜欢函数类型 - 我喜欢函数类型 - 但是函数类型与Java类型系统的现有方面,擦除有很大关系.删除的功能类型是两个世界中最糟糕的.所以我们从设计中删除了它.
谁能解释这些陈述?为什么我需要lambdas的运行时类型信息?
有谁知道一些背景,为什么Scala和C#使用双箭头(=>)代替lambdas而不是单箭头( - >)?
单箭头在文献中比较常见,用于Haskell,O'Caml,F#,Groovy等等,IMO也看起来更好:)
我正在学习Clojure并尝试通过与Python的类似功能相似来理解读者,引用,评估和同质性.
在Python中,避免(或推迟)评估的一种方法是将表达式包装在引号之间,例如.'3 + 4'
.您可以稍后使用eval
,例如,eval('3 + 4')
屈服7
.(如果只需要引用Python值,则可以使用repr
函数而不是手动添加引号.)
在Lisp中,您使用quote
或'
用于引用和eval
评估,例如.(eval '(+ 3 4))
屈服7
.
因此在Python中,"引用"的东西由字符串表示,而在Lisp中,它由quote
作为第一项的列表表示.
我的问题,最后:为什么Clojure允许(eval 3)
虽然3
没有引用?这只是Lisp风格的问题(尝试尽可能给出答案而不是错误)或者还有其他原因吗?这种行为对Lisp是否必不可少?
该文档sys.settrace
说它可以报告对c或内置函数的调用.当我尝试关注程序时,我希望看到一个c_call
事件,但没有任何反应:
import sys
def tracer(frame, event, arg):
print(frame, event, arg)
return tracer
sys.settrace(tracer)
x = len([1,2,3])
Run Code Online (Sandbox Code Playgroud)
任何想法在这里有什么问题?
任何人都可以发布一个使用sys.settrace
其生成c_call
事件的示例吗?
编辑:最初我尝试使用Python 3.2,它没有给我任何事件.现在我用Python 2.7尝试了它,它给了我两个call
(不是c_call
-s).仍然很奇怪.
我需要向用户提供一个Python安装列表,供您选择执行某些操作.我想在Windows中我可以从注册表中获取此信息.不了解Linux和Mac.
任何提示?或者你甚至可能知道我可以找到Python代码的地方?
编辑:我找到真正的所有口译员并不重要.从标准位置寻找口译员实际上很好.同意,这不是太困难,但我只是希望有人可能会有这样的代码,或者我在stdlib中忽略了一个函数.
做Python的str.__lt__
或sorted
顺序字符根据其Unicode索引或某些区域设置相关的排序规则?
你能否澄清一些Matplotlib术语:
python ×5
c# ×1
clojure ×1
debugging ×1
eval ×1
generics ×1
ieee-754 ×1
java ×1
lisp ×1
matplotlib ×1
python-3.x ×1
rounding ×1
scala ×1
servlet-3.0 ×1
servlets ×1
type-erasure ×1
unicode ×1