我有一组子类,应该都定义一个x应该评估为True或False 的属性.为了在忘记在子类中设置此值时捕获错误,我想在其超类中将其设置为真值评估导致错误的值.Python有这种行为的内置值吗?我有点期望NotImplemented这种行为,但它的评估结果是True.
我可以将其设置为numpy.array([0, 0])在那里if x:提高ValueError,但感觉不对.同样,我可以定义自己的类来__bool__引发异常.但是否有适合此目的的内置价值?
其他替代方案是设置属性(抽象与否)或根本不定义(所以我们得到AttributeError).
(我正在使用Python 3.4,以防万一)
在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控制台?
出于调试/记录目的,我想将完整堆栈写入文件(例如在此问题中)。我可以使用traceback.format_stack(). 但是,我希望它看起来像IPython输出的更详细的回溯,例如,格式化为IPython.core.ultratb.VerboseTB.
看起来类和方法IPython.core.ultratb需要有关异常的信息,因为它们是为回溯而设计的。但我也不例外:我只想以冗长的方式显示堆栈。
如何使用 的输出方法IPython.core.ultratb.VerboseTB来格式化堆栈,例如报告的traceback.extract_stack()或inspect.stack()?
我被以下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)
我觉得这很奇怪。我正在尝试将我的数组保存到文本文件中。那我为什么要以二进制模式打开文件呢?
如果我已正确记录了方法或属性,我可以通过输入找出它的定义help class/method,这将告诉我Help for class/method is inherited from superclass otherclass.通常,这意味着那里也有一个方法定义,但不一定(我可能实现了一个抽象方法而不重新记录它).
在一般情况下,我如何找出超类定义特定属性或方法的内容?
我想知道因为我正在重构我的代码.
注意:我正在使用classdef-files,我的所有类都是handle类,如果它是相关的.
我想在 中缓存一些文件$HOME/.cache,但我不知道在什么操作系统下我可以假设它已经存在。如果没有,我可以尝试自己创建它吗?或者这是一个错误?什么实体创建它?位置是否.cache标准化?标准是什么?
我有矩阵数据,其中一个轴与日期有关.但是,我在将此数据作为轴传递时遇到问题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) Numpy 的allclose 如果两个数组在公差范围内按元素相等则返回 True。
Matlab中是否有等价物?
是否存在扩展xarray.DataArray对象尺寸(和坐标)的方法?
我想获得类似于np.expand_dims的内容,同时为新的expand定义新的尺寸和坐标变量DataArray。
使用DataArray.assign_coords()I可以创建一个新的坐标变量,但是不会使用新轴扩展数组本身。
如何以“有效”的方式在 Dask 中执行以下操作:
我的 dask 数据框有“日期”(日期时间)、“MAC”(类别)和“ID”(整数)列,它们已经按日期排序,我想获得一个新列,其中包含 http 请求到达的时间增量对于给定的 mac 地址。
在 Pandas 中,我会执行以下操作:设置一个多索引 ['ID', 'MAC'],然后使用df['Date'].diff(1). 似乎不支持多索引,因此无法重现相同的解决方案。重要的部分是必须在给定请求和以下记录器(按日期排序)之间对同一 MAC 进行差异。