如何在调用函数后直接访问类变量值,即class.function()。value_from_class

时间:2017-07-14 12:07:13

标签: python

我有一个内部有一个函数的类,它会更新实例变量。在这种情况下,该类进行动态计算。这是一个简单的例子,它定义了x和v向量,并有一个move()函数来更新时间间隔dt上的位置。

import numpy as np
class Dynamics():
     def __init__(self,x0,v0):
         self.X=np.array(x0)
         self.V=np.array(v0)
     def move(self,dt):
         self.X=self.X+self.V*dt

现在我可以按照以下方式调用它来开始以1米/秒的速度向右移动原点:

>>> particle=Dynamics([0,0,0],[1,0,0])
>>> particle.move(2)
>>> print particle.X
[2,0,0]

但我宁愿能够直接从move()调用访问X:

>>> particle.move(2).X

然而,当我这样做时,我收到错误:

AttributeError: 'NoneType' object has no attribute 'X'

1 个答案:

答案 0 :(得分:1)

  

更新类变量

这些实际上是实例变量

  

但我宁愿能够直接从move()调用

访问X.

我没有看到你想要这样做的明确原因,但你可以return self而不是return None的任何Python函数的默认动作。

def move(self,dt):
     self.X=self.X+self.V*dt
     return self 

现在您的代码应该正常工作