我有一个名为Robot
的类,它创建了类Segment
和Pointmass
的许多实例。所有这些实例都有一个变量mass
。如何获得具有相同变量名mass
的对象内的所有对象的总质量?添加同名类内实例的所有变量
我现在做什么:
class Robot:
def __init__(self, massJoint1, massJoint2, massJoint3, massSlide, reachSlide, massArm, lengthArm):
self.joint1 = Pointmass(massJoint1)
self.joint2 = Pointmass(massJoint2)
self.joint3 = Pointmass(massJoint3)
self.slide = Slide(massSlide, reachSlide)
self.arm = Arm(massArm, lengthArm)
self.totalmass = self.joint1.mass + self.joint2.mass + self.joint3.mass + self.slide.mass + self.arm.mass
def printVars(self):
attrs = vars(self)
print(', \n'.join("%s: \t%s" % item for item in attrs.items()))
print()
class Pointmass:
def __init__(self, mass):
self.mass = mass
self.location = None
class Segment:
def __init__(self, mass):
self.mass = mass
self.start = None
self.end = None
在这
self.totalmass = self.joint1.mass + self.joint2.mass + self.joint3.mass + self.slide.mass + self.arm.mass
是一个很长的线,并且是当Robot
获得更多武器和关节...真的是不方便有更好的方法来获得总质量?
使用列表,for循环和'* args'? – 2017-06-22 12:30:34
好像你的'joint1','joint2','joint3'应该在列表中。 – khelwood
如果您的机器人肢体太多,这表明您应该将它们存储在列表中。 –