如何用python jupyter笔记本呈现面向对象的代码?

时间:2019-05-23 08:30:58

标签: python jupyter-notebook

我正在使用Jupyter笔记本,我想用它展示我的面向对象的代码。 我的问题是它无法识别类的方法。 我的意思是我想解释代码的每个部分,因此将每个方法放在一个单元格中。 现在,当我调用一个方法时,会出现此错误:

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-17-4bb647616f28> in <module>
----> 1 s.plot_numpy_array()

AttributeError: 'Classification' object has no attribute 'plot_numpy_array'

此图显示了我的意思: enter image description here

3 个答案:

答案 0 :(得分:1)

您可能想使用markdown代替:

1-在一个代码单元中创建您的类(这是它可以peoperly执行的唯一方法。
2-创建包含您要突出显示的代码部分及其说明的markdown单元格:

降价单元格:

(未呈现)

```python
def __init__(self, *args):
   ...
```
Blurb of prose explaining what you need to. Can include Latex, pictures, etc.

->三重“勾号”之间的代码将以正确的语法突出显示。

答案 1 :(得分:0)

您必须将所有功能都放在同一个单元格中,并正确缩进您的班级。 Jupyter Notebook不支持您尝试执行的操作。

结合使用注释和减价可能是拥有清晰文档的最佳选择。

答案 2 :(得分:0)

您将一个单元格设置为markdown,并使用带有TAB,单引号(`)和三引号(```)的语法突出显示。

您还可以使用?(问号)或??。它将为您的课程提供出色的文档。

以下面的代码为例:

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(10)

fig = plt.figure()
ax = plt.subplot(111)

for i in range(5):
    ax.plot(x, i * x, label='$y = %ix$' % i)

ax.legend()
plt.show()

?plt

enter image description here