class使用python生成org模式

时间:2018-04-05 13:50:02

标签: python-3.x class emacs org-mode aquamacs

我在python中使用org-mode课时遇到了困难 以下是组织模式文件的简单说明:

首先让我们定义一个类

#+BEGIN_SRC python :session :exports code
class The_class():
    def __init__(self, a):
        self.a = a

    def add_me(self):
        return self.a + self.a

    def sqr_me(self):
        return self.a**2

#+END_SRC

然后检查班级:

#+BEGIN_SRC python :session :exports both :results output 
itm = The_class(3)
print('value of itm.a: {0}'.format(itm.a))
print('attributes: {0}'.format(itm.__dict__))
print('methods of itm: {0}'.format(dir(itm)))
#+END_SRC

进行计算:

#+BEGIN_SRC python :session :exports both :results output
print(itm.add_me()) 
print(itm.sqr_me())
#+END_SRC

第二个块代码正确识别属性,但是它失败了 识别self.add_me()中的self.sqr_me()dir(self)方法。 因此,在致电itm.add_me()时,它给了我一个: 例如:

#+RESULTS: 
: Traceback (most recent call last): 
:   File "<stdin>", line 1, in <module> 
:   File "/var/folders/l7/3vzbfyz93z1fz31m3m6srjcm0000gn/T/babel-18019W4Z/python-1801928I", line 1, in <module> 
:     print(itm.add_me())  
: AttributeError: 'The_class' object has no attribute 'add_me' :

任何想法发生了什么?

1 个答案:

答案 0 :(得分:2)

问题来自换行。只需删除它们。

#+BEGIN_SRC python :session :exports code
class The_class():
    def __init__(self, a):
        self.a = a
    def add_me(self):
        return self.a + self.a    
    def sqr_me(self):
        return self.a**2

#+END_SRC