众所周知,由于舍入和精度问题,比较浮点数是否相等.
例如:https: //randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/
在Python中处理这个问题的推荐方法是什么?
当然,这个地方有一个标准的库函数吗?
我需要一个布尔数组的紧凑表示,Python有内置的位域类型还是我需要找到一个替代解决方案?
我想要计算迭代中有多少成员符合给定条件.我想以一种清晰简单的方式来做,最好是相当合理的.
我目前最好的想法是:
sum(meets_condition(x) for x in my_list)
Run Code Online (Sandbox Code Playgroud)
和
len([x for x in my_list if meets_condition(x)])
Run Code Online (Sandbox Code Playgroud)
第一个基于迭代器的大概列表更快.它与您用于测试任何和所有的形式相同.但是它取决于int(True)== 1的事实,这有点难看.
第二个似乎更容易给我看,但它与任何和所有形式都不同.
有没有人有更好的建议?我遗失的地方有图书馆功能吗?
是否有标准调用将POSIX套接字的发送端一直刷新到远程端,还是需要将其作为用户级协议的一部分实现?我环顾了常见的标题,却找不到任何东西.
以下片段:
import traceback
def a():
b()
def b():
try:
c()
except:
traceback.print_exc()
def c():
assert False
a()
Run Code Online (Sandbox Code Playgroud)
生成此输出:
Traceback (most recent call last):
File "test.py", line 8, in b
c()
File "test.py", line 13, in c
assert False
AssertionError
Run Code Online (Sandbox Code Playgroud)
如果我想要完整的堆栈跟踪包括对一个?的调用,我应该使用什么?
如果重要的话我有Python 2.6.6
编辑:我想得到的是,如果我离开尝试除外,我将得到的相同信息,并将异常传播到顶层.这个代码段例如:
def a():
b()
def b():
c()
def c():
assert False
a()
Run Code Online (Sandbox Code Playgroud)
生成此输出:
Traceback (most recent call last):
File "test.py", line 10, in <module>
a()
File "test.py", line 2, in a
b()
File "test.py", line 5, in b …Run Code Online (Sandbox Code Playgroud) 我经常这样做:
class Person(object):
def greet(self):
print "Hello"
class Waiter(Person):
def greet(self):
Person.greet(self)
print "Would you like fries with that?"
Run Code Online (Sandbox Code Playgroud)
Person.greet(self)这行似乎不对.如果我改变了Waiter继承的类,我将不得不追踪其中的每一个并将它们全部替换掉.
现代Python的正确方法是什么?2.x和3.x都有,我知道这个区域有3个变化.
如果重要的是我通常坚持单继承,但如果需要额外的东西来正确地适应多重继承,那么了解它就是好的.
http://en.wikipedia.org/wiki/Same_origin_policy
相同的源策略可防止一个站点的脚本与另一个站点通信.维基说这是一个"重要的安全概念",但我不清楚它会阻止什么样的威胁.
我知道来自一个站点的cookie不应该与另一个站点共享,但可以(并且)单独执行.
CORS标准http://en.wikipedia.org/wiki/Cross-Origin_Resource_Sharing提供了绕过相同原始策略的合法系统.据推测,它不允许同一起源策略设计阻止的任何威胁.
看看CORS,我更不清楚谁会受到保护.CORS由浏览器强制执行,因此它不会保护任何站点免受浏览器的攻击.这些限制是由脚本想要与之交谈的网站决定的,因此它似乎无法保护用户免受任何网站的攻击.
那么什么是相同的原产地政策呢?
背景:编译器可以在结构中插入填充以使其成员更好地对齐.这将导致结构的大小大于其成员大小的总和.重新排序结构的成员以便它们更好地打包可以消除编译器以这种方式填充的需要并使结构更小以节省内存.我需要节省内存.
后备选项是手动检查每个结构.我正在寻找一种可以减少工作量的自动化方法.
即使它只减少了手工检查的结构数量,也会有所帮助.
因此,例如,一个进程/工具/等列出了大于其成员大小总和的所有结构,虽然不完美仍然有用,因为它会限制需要手动检查的结构.
有没有人知道任何可以做到这一点的工具,或者任何人都可以建议任何可能有用的方法.
ps我需要在包含超过100万行代码的嵌入式C代码库中执行此操作.
我有很多可调用的对象,它们都__doc__正确地填写了字符串,但是对它们运行帮助可以为它们的类提供帮助,而不是基于它的帮助__doc__.
我想改变它,以便在它们上运行帮助产生自定义的帮助,看起来基本上就像我将得到的,如果它们是实际的函数而不是实现的类的实例__call__.
在代码中,我想输出:
class myCallable:
def __init__(self, doc):
self.__doc__ = doc
def __call__(self):
# do some stuff
pass
myFunc = myCallable("some doco text")
help(myFunc)
Run Code Online (Sandbox Code Playgroud)
看起来更像是这个的输出:
def myFunc():
"some doco text"
# do some stuff
pass
help(myFunc)
Run Code Online (Sandbox Code Playgroud) 我有一堆C文件是由一组python程序生成的,这些程序有许多共享的python模块,我需要在make系统中考虑到这一点.
枚举需要运行哪个python程序来生成每个C文件是很容易的.我找不到一个好的解决方案是确定那些程序所依赖的其他python文件.我需要这个,所以如果其中一个共享的python文件发生变化,make会知道需要重新生成什么.
是否有一个很好的系统来从python源集合中生成make风格依赖规则?