小编ger*_*rit的帖子

真值评估无效的内置Python值是否存在?

我有一组子类,应该都定义一个x应该评估为True或False 的属性.为了在忘记在子类中设置此值时捕获错误,我想在其超类中将其设置为真值评估导致错误的值.Python有这种行为的内置值吗?我有点期望NotImplemented这种行为,但它的评估结果是True.

我可以将其设置为numpy.array([0, 0])在那里if x:提高ValueError,但感觉不对.同样,我可以定义自己的类来__bool__引发异常.但是否有适合此目的的内置价值?

其他替代方案是设置属性(抽象与否)或根本不定义(所以我们得到AttributeError).

(我正在使用Python 3.4,以防万一)

python boolean

5
推荐指数
1
解决办法
212
查看次数

使“交互”使用IPython控制台,而不是标准的Python?

在pdb / ipdb调试中,有用的interact命令为我提供了功能齐全的交互式Python控制台。

但是,即使我一ipdb开始使用,它似乎始终是“标准” Python控制台。有没有一种配置ipdb的方法,interact它将为我提供IPython控制台,而不是标准的Python?有趣的是,我确实收到了IPython样式提示,但是却没有使用IPython魔术,例如%whos

In [24]: 1/0
---------------------------------------------------------------------------
ZeroDivisionError                         Traceback (most recent call last)
<ipython-input-24-05c9758a9c21> in <module>()
----> 1 1/0

ZeroDivisionError: division by zero

In [25]: %debug
> <ipython-input-24-05c9758a9c21>(1)<module>()
----> 1 1/0

ipdb> interact
*interactive*
In : %whos
  File "<console>", line 1
    %whos
    ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

有没有办法让ipdb小号interact给我的全功能IPython控制台?

python debugging ipython pdb ipdb

5
推荐指数
1
解决办法
411
查看次数

traceback.print_stack() 使用 IPython 的 ultratb

出于调试/记录目的,我想将完整堆栈写入文件(例如在此问题中)。我可以使用traceback.format_stack(). 但是,我希望它看起来像IPython输出的更详细的回溯,例如,格式化为IPython.core.ultratb.VerboseTB.

看起来类和方法IPython.core.ultratb需要有关异常的信息,因为它们是为回溯而设计的。但我也不例外:我只想以冗长的方式显示堆栈。

如何使用 的输出方法IPython.core.ultratb.VerboseTB来格式化堆栈,例如报告的traceback.extract_stack()inspect.stack()

python debugging stack-trace ipython traceback

5
推荐指数
1
解决办法
1068
查看次数

为什么我应该给 `savetxt` 一个以二进制而不是文本模式打开的文件?

我被以下numpy行为咬了:

In [234]: savetxt(open('/tmp/a.dat', 'wt'), array([1, 2, 3]))
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-234-2adef92da877> in <module>()
----> 1 savetxt(open('/tmp/a.dat', 'wt'), array([1, 2, 3]))

/local/gerrit/python3.2/lib/python3.2/site-packages/numpy/lib/npyio.py in savetxt(fname, X, fmt, delimiter, newline)
   1007         else:
   1008             for row in X:
-> 1009                 fh.write(asbytes(format % tuple(row) + newline))
   1010     finally:
   1011         if own_fh:

TypeError: must be str, not bytes

In [235]: savetxt(open('/tmp/a.dat', 'wb'), array([1, 2, 3]))
# success
Run Code Online (Sandbox Code Playgroud)

我觉得这很奇怪。我正在尝试将我的数组保存到文本文件中。那我为什么要以二进制模式打开文件呢?

numpy python-3.x

4
推荐指数
1
解决办法
1810
查看次数

找出哪些超类包含属性或方法实现

如果我已正确记录了方法或属性,我可以通过输入找出它的定义help class/method,这将告诉我Help for class/method is inherited from superclass otherclass.通常,这意味着那里也有一个方法定义,但不一定(我可能实现了一个抽象方法而不重新记录它).

在一般情况下,我如何找出超类定义特定属性或方法的内容?

我想知道因为我正在重构我的代码.

注意:我正在使用classdef-files,我的所有类都是handle类,如果它是相关的.

oop matlab

4
推荐指数
1
解决办法
56
查看次数

我可以假设 .cache 目录存在吗?

我想在 中缓存一些文件$HOME/.cache,但我不知道在什么操作系统下我可以假设它已经存在。如果没有,我可以尝试自己创建它吗?或者这是一个错误?什么实体创建它?位置是否.cache标准化?标准是什么?

linux caching posix

4
推荐指数
1
解决办法
1879
查看次数

如何将日期数组传递给pcolor图?

我有矩阵数据,其中一个轴与日期有关.但是,我在将此数据作为轴传递时遇到问题pcolor.我的虚拟数据如下:

In [219]: X = [datetime.date.today() + datetime.timedelta(days=i) for i in range(4)]

In [220]: Y = arange(5)

In [221]: Z = arange(4*5).reshape(4, 5)
Run Code Online (Sandbox Code Playgroud)

天真的尝试pcolor(Y, X, Z)失败,因为pcolor不喜欢得到一个list对象:

In [222]: pcolor(Y, X, Z)
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-222-1ece18b4bc13> in <module>()
----> 1 pcolor(Y, X, Z)

/export/data/home/gholl/venv/gerrit/lib/python3.4/site-packages/matplotlib/pyplot.py in pcolor(*args, **kwargs)
   2926         ax.hold(hold)
   2927     try:
-> 2928         ret = ax.pcolor(*args, **kwargs)
   2929         draw_if_interactive()
   2930     finally:

/export/data/home/gholl/venv/gerrit/lib/python3.4/site-packages/matplotlib/axes.py in pcolor(self, *args, **kwargs)
   7545         shading = …
Run Code Online (Sandbox Code Playgroud)

python plot datetime numpy matplotlib

4
推荐指数
1
解决办法
2204
查看次数

numpy allclose 的 Matlab 等价物?

Numpy 的allclose 如果两个数组在公差范围内按元素相等则返回 True

Matlab中是否有等价物?

floating-point comparison matlab floating-accuracy

4
推荐指数
1
解决办法
1240
查看次数

展开尺寸xarray

是否存在扩展xarray.DataArray对象尺寸(和坐标)的方法?

我想获得类似于np.expand_dims的内容,同时为新的expand定义新的尺寸和坐标变量DataArray

使用DataArray.assign_coords()I可以创建一个新的坐标变量,但是不会使用新轴扩展数组本身。

python numpy dimension multidimensional-array python-xarray

3
推荐指数
2
解决办法
2141
查看次数

dask 中的高效排序差异

如何以“有效”的方式在 Dask 中执行以下操作:

我的 dask 数据框有“日期”(日期时间)、“MAC”(类别)和“ID”(整数)列,它们已经按日期排序,我想获得一个新列,其中包含 http 请求到达的时间增量对于给定的 mac 地址。

在 Pandas 中,我会执行以下操作:设置一个多索引 ['ID', 'MAC'],然后使用df['Date'].diff(1). 似乎不支持多索引,因此无法重现相同的解决方案。重要的部分是必须在给定请求和以下记录器(按日期排序)之间对同一 MAC 进行差异。

python sorting dataframe dask

3
推荐指数
1
解决办法
680
查看次数