将类划分为子函数/类python



第一次在这里发帖和python新手,这个问题可能以前被问过,但我找不到任何答案。

我有一个读取机器人状态数据的类,这很好用,当我调用它们时,我能够将我的数据深入到工作良好的方法中。但我想进一步划分我的班级,这样数据结构会更好。例如

我有一些方法读取并返回target_data

def target_joint_positions(self):
t_j_p = self.read_data()[1:7]
return t_j_p
def target_joint_velocities(self):
t_j_v = self.read_data()[7:13]
return t_j_v
def target_joint_currents(self):
t_j_c = self.read_data()[19:25]
return t_j_c

以及返回actual_data的类似方法:

def actual_joint_positions(self):
a_j_p = self.read_data()[31:37]
return a_j_p
def actual_joint_velocities(self):
a_j_v = self.read_data()[37:43]
return a_j_v
def actual_joint_currents(self):
a_j_c = self.read_data()[43:49]
return a_j_c

因此,我想实现的是,当我创建一个类的实例时,而不是获得所有的方法,我想要这样的东西:

inst=类别名称((

inst.target.(目标方法列表(

inst.actual.(实际方法列表(

我研究过嵌套类和继承,但我并没有成功地实现我的目标。谢谢你的指点。

欢迎!

您可以执行以下操作:

class TargetMetrics:
def __init__(self, data):
self.data = data
def joint_positions(self):
return self.data[1:7]
...
class ActualMetrics:
def __init__(self, data):
self.data = data
def joint_positions(self):
return self.data[31:37]
...
class RobotMetrics:
def __init__(self):
data = read_data()
self.actual = ActualMetrics(data)
self.target = TargetMetrics(data)
...

最新更新