输入并运行时没有括号的类对象如何在Python REPL或Jupyter Notebook中打印

尼克·奥兹(Nick OZ)

背景:我正在使用jupyter笔记本中的SymPy模块。我想创建sympy的Matrix类的子/子类(实际上是sympy.matrices.dense.MutableDenseMatrix)。

我写这个=>

import sympy as sym
class Mat(sym.Matrix):
  def __init__(self,a):
    self.a = super(a)

然后我在一个单独的单元格中调用以下内容

X=Mat([[1,2,3]])

这给一个错误

TypeError                                 
Traceback (most recent call last)
<ipython-input-154-9d0dfad5081f> in <module>
----> 1 X= Mat([[1,2,3]])

<ipython-input-153-41d7b2cc4dd1> in __init__(self, a)
      1 class Mat(sym.Matrix):
      2     def __init__(self,a):
----> 3         self.a = super(a)

TypeError: super() argument 1 must be type, not list

不知道这个的原因我尝试了这个

class Mat:
    def __init__(self,a):
        self.a = sym.Matrix(a)

然后作业通过了。

现在,我仅在下一个单元格中运行它(为了简单起见,这就像执行Name一样

X

得到了输出

<__main__.Mat at 0x7f80b77f8b80>

但我期待

[1 2 3]

要么

Matrix([[1, 2, 3]])

当我创建一个常规的sym.Matrix对象并执行它的Name时,分别是Jupyter Notebook和Python REPL中的输出

注:我知道的存在__str____repr__,但那些只是如果我使用有帮助print(X)

注意:我尝试将定义__call__

def __call__(self):
  return self.a

但是它只有在我先执行X=X()然后执行时才有效X

所以我的问题是,仅执行对象名称时调用的内部方法是什么(可能是魔术方法),以及如何为我的类定义它,如果将来我创建一个没有继承的类(因此我不会必须使用相同的超类方法)

mun

通过查看文档,我们可以:

在Python中,对象可以使用_ repr _方法声明其文本表示形式IPython扩展了这一思想,并允许对象声明其他丰富的表示形式,包括:

_repr_html_:将原始HTML作为字符串或元组返回(请参见下文)。

_repr_json_:返回JSONable字典或元组(请参见下文)。

_repr_jpeg_:返回原始JPEG数据或元组(请参见下文)。

_repr_png_:返回原始PNG数据或元组(请参见下文)。

_repr_svg_:以字符串或元组的形式返回原始SVG数据(请参见下文)。

_repr_latex_:以“ $”或元组(参见下文)包围的字符串返回LaTeX命令。

_repr_mimebundle_:返回包含映射的完整mimebundle

另外,这个SO问题似乎是相关的。

有效的代码段应类似于:

import sympy as sym
class Mat(sym.Matrix):
  def __init__(self,a):
    self.a = sym.Matrix(a)
  def _repr_html_(self):
        return f"<p><h1>{self.a.__repr__()}</h1></p>"

结果类似: 在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Jupyter Notebook中打印不打印索引或列名的Panda DataFrame

来自分类Dev

Jupyter Notebook中的打印台

来自分类Dev

如何在Jupyter Notebook中输入数据

来自分类Dev

如何在 jupyter notebook 中运行 scala 值类

来自分类Dev

在PyCharm中,从IDE运行时,如何删除Jupyter Notebook的输出?

来自分类Dev

如何在python的集合中添加()运行时输入?

来自分类Dev

在 Jupyter Notebook 中运行 Dash 的问题

来自分类Dev

如何在REPL中打印Julia中的功能代码?

来自分类Dev

如何在Jupyter Python Notebook中的gmap上显示文本?

来自分类Dev

如何在Jupyter Notebook单元中刷新Python导入?

来自分类Dev

没有RTTI,在C ++中如何在运行时确定集合中的对象是否实现了接口

来自分类Dev

AttributeError: 'NoneType' 对象在 python 中没有属性 'Mrc' 使用 jupyter notebook

来自分类Dev

ModuleNotFoundError:Jupyter Notebook中没有名为“ tensorflow”的模块

来自分类Dev

在Jupyter Notebook ModuleNotFoundError中:没有名为'plotly'的模块

来自分类Dev

在Jupyter Notebook中运行带超时的python脚本

来自分类Dev

如何在IPython Notebook / Jupyter中激活代码帮助

来自分类Dev

如何在Jupyter Notebook中更改工作目录?

来自分类Dev

如何在Jupyter Notebook的输出中显示整个表格

来自分类Dev

如何在Jupyter Notebook中添加交互式绘图?

来自分类Dev

如何在VSCode Jupyter Notebook中拆分单元格?

来自分类Dev

如何在Jupyter Notebook中修复此ImportError?

来自分类Dev

如何在Watson Studio中从Jupyter Notebook连接到DashDB?

来自分类Dev

如何在 Microsoft Azure 的 Jupyter Notebook 中从 Kaggle 读取文件?

来自分类Dev

如何使用 jupyter notebook 修复 python 中的“语法错误”?

来自分类Dev

如何使用 Jupyter Notebook 在 Python 中更慢地抓取网站?

来自分类Dev

如何在C ++中打印案例的运行时间

来自分类Dev

如何像Jupyter Notebook的默认单元格输出一样打印

来自分类Dev

在Jupyter Scala Notebook中运行h2o

来自分类Dev

在Jupyter Notebook中运行代码时出现BrokenProcessPool

Related 相关文章

  1. 1

    如何在Jupyter Notebook中打印不打印索引或列名的Panda DataFrame

  2. 2

    Jupyter Notebook中的打印台

  3. 3

    如何在Jupyter Notebook中输入数据

  4. 4

    如何在 jupyter notebook 中运行 scala 值类

  5. 5

    在PyCharm中,从IDE运行时,如何删除Jupyter Notebook的输出?

  6. 6

    如何在python的集合中添加()运行时输入?

  7. 7

    在 Jupyter Notebook 中运行 Dash 的问题

  8. 8

    如何在REPL中打印Julia中的功能代码?

  9. 9

    如何在Jupyter Python Notebook中的gmap上显示文本?

  10. 10

    如何在Jupyter Notebook单元中刷新Python导入?

  11. 11

    没有RTTI,在C ++中如何在运行时确定集合中的对象是否实现了接口

  12. 12

    AttributeError: 'NoneType' 对象在 python 中没有属性 'Mrc' 使用 jupyter notebook

  13. 13

    ModuleNotFoundError:Jupyter Notebook中没有名为“ tensorflow”的模块

  14. 14

    在Jupyter Notebook ModuleNotFoundError中:没有名为'plotly'的模块

  15. 15

    在Jupyter Notebook中运行带超时的python脚本

  16. 16

    如何在IPython Notebook / Jupyter中激活代码帮助

  17. 17

    如何在Jupyter Notebook中更改工作目录?

  18. 18

    如何在Jupyter Notebook的输出中显示整个表格

  19. 19

    如何在Jupyter Notebook中添加交互式绘图?

  20. 20

    如何在VSCode Jupyter Notebook中拆分单元格?

  21. 21

    如何在Jupyter Notebook中修复此ImportError?

  22. 22

    如何在Watson Studio中从Jupyter Notebook连接到DashDB?

  23. 23

    如何在 Microsoft Azure 的 Jupyter Notebook 中从 Kaggle 读取文件?

  24. 24

    如何使用 jupyter notebook 修复 python 中的“语法错误”?

  25. 25

    如何使用 Jupyter Notebook 在 Python 中更慢地抓取网站?

  26. 26

    如何在C ++中打印案例的运行时间

  27. 27

    如何像Jupyter Notebook的默认单元格输出一样打印

  28. 28

    在Jupyter Scala Notebook中运行h2o

  29. 29

    在Jupyter Notebook中运行代码时出现BrokenProcessPool

热门标签

归档