小编Jon*_*han的帖子

如何len(generator())

Python生成器非常有用.它们优于返回列表的函数.但是,你可以len(list_returning_function()).有办法len(generator_function())吗?

更新:
当然len(list(generator_function()))会工作.....
我正在尝试使用我在我正在创建的新生成器中创建的生成器.作为新发电机计算的一部分,它需要知道旧发电机的长度.但是我想将它们与发生器保持相同的属性,特别是 - 不要将整个列表保存在内存中,因为它可能长.

更新2:
假设发生器即使从第一步开始就知道它的目标长度.此外,没有理由维护len()语法.示例 - 如果Python中的函数是对象,我不能将长度分配给新生成器可以访问的此对象的变量吗?

python generator

128
推荐指数
8
解决办法
9万
查看次数

多处理 - 管道与队列

Python的多处理包中队列和管道之间的根本区别是什么?

在什么情况下应该选择一个而不是另一个?什么时候使用有利Pipe()?什么时候使用有利Queue()

python queue performance pipe multiprocessing

128
推荐指数
3
解决办法
6万
查看次数

我应该使用Python 32位还是Python 64位

我有一个win7 64位安装.我必须使用Python 64bit吗?32位和64位Python版本之间有什么区别?不同的Python包(例如south,django,mysqldb等)是否只支持32bit\64bit?

python 32bit-64bit

126
推荐指数
4
解决办法
13万
查看次数

如何模拟导入

模块A包括import B在其顶部.然而在试验条件下,我想嘲笑 BA(模拟A.B)和进口完全避免B.

实际上,B并非故意安装在测试环境中.

A是被测单位.我必须导入A及其所有功能.B是我需要模拟的模块.但是我如何在A中模拟B并阻止A导入真实B,如果A做的第一件事就是导入B?

(没有安装B的原因是我使用pypy进行快速测试,不幸的是B还与pypy不兼容.)

怎么可以这样做?

python mocking python-import

126
推荐指数
6
解决办法
4万
查看次数

范围()浮动

range()Python中是否有等效的浮点数?

>>> range(0.5,5,1.5)
[0, 1, 2, 3, 4]
>>> range(0.5,5,0.5)

Traceback (most recent call last):
  File "<pyshell#10>", line 1, in <module>
    range(0.5,5,0.5)
ValueError: range() step argument must not be zero
Run Code Online (Sandbox Code Playgroud)

python decimal range fractions

120
推荐指数
12
解决办法
21万
查看次数

如何从日期时间对象中删除pytz时区?

有没有一种简单的方法从pytz日期时间对象中删除时区?
例如dt,dt_tz在这个例子中重建:

>>> import datetime
>>> import pytz
>>> dt = datetime.datetime.now()
>>> dt
datetime.datetime(2012, 6, 8, 9, 27, 32, 601000)
>>> dt_tz = pytz.utc.localize(dt)
>>> dt_tz
datetime.datetime(2012, 6, 8, 9, 27, 32, 601000, tzinfo=<UTC>)
Run Code Online (Sandbox Code Playgroud)

python timezone pytz

99
推荐指数
1
解决办法
7万
查看次数

动态设置局部变量

你如何在Python中动态设置局部变量?

(变量名称是动态的)

更新:我知道这不是一个好的做法,而且这些言论是合法的,但这不是一个坏问题,只是一个更理论的问题 - 我不明白为什么这证明了这一点.

python dynamic

97
推荐指数
3
解决办法
6万
查看次数

Python - 使用list作为函数参数

如何使用Python列表(例如params = ['a',3.4,None])作为函数的参数,例如:

def some_func(a_char,a_float,a_something):
   # do stuff
Run Code Online (Sandbox Code Playgroud)

python list function-parameter

92
推荐指数
4
解决办法
15万
查看次数

在比较C++中的结构时找不到==运算符

比较以下结构的两个实例,我收到一个错误:

struct MyStruct1 {
    Position(const MyStruct2 &_my_struct_2, const int _an_int = -1) :
        my_struct_2(_my_struct_2),
        an_int(_an_int)
    {}

    std::string toString() const;

    MyStruct2 my_struct_2;
    int an_int;
};
Run Code Online (Sandbox Code Playgroud)

错误是:

错误C2678:二进制'==':找不到哪个运算符带有'myproj :: MyStruct1'类型的左手操作数(或者没有可接受的转换)

为什么?

c++ struct comparison-operators

91
推荐指数
4
解决办法
10万
查看次数

REST API最佳实践:查询字符串与请求正文中的args

REST API可以在几个地方包含参数:

  1. 在请求正文中 - 作为json正文或其他MIME类型的一部分
  2. 查询字符串中 - 例如/api/resource?p1=v1&p2=v2
  3. 作为URL路径的一部分 - 例如/api/resource/v1/v2

选择上述1和2之间的最佳做法和考虑因素是什么?这里
涉及2对3 .

api rest json http query-string

83
推荐指数
4
解决办法
6万
查看次数