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



我有一个类,里面有一个函数,可以更新实例变量。在这种情况下,类执行动态计算。这是一个简单的例子,它定义了 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 m/s 的速度向右移动:

>>> 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'

更新类变量

这些实际上是实例变量

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

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

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

现在你的代码应该可以工作了

最新更新