函数updateData的弊端及优化如何通过类设计简化代码
函数updateData()存在的问题之一是参数过多:它需要接受5个参数和返回3个值。当函数的参数过多时,通常意味着设计上存在改进的空间。为了解决这个问题,可以考虑使用面向对象设计(OO设计)。例如,设计一个抛物体类(Projectile),将所有与抛物体相关的属性(如位置、速度、以及y方向速度的变化)封装在类内部。这样,main函数就不需要直接操作这些细节,提高了代码的可维护性和可读性。以下是优化后的代码示例:
# 优化后的代码
class Projectile:
    def __init__(self, angle, velocity, height):
        self.angle = angle
        self.velocity = velocity
        self.height = height
        self.x = 0.0
        self.y = height
        self.vy = velocity * math.sin(math.radians(angle))
        self.vx = velocity * math.cos(math.radians(angle))
    def update(self, time):
        self.x += self.vx * time
        self.y += self.vy * time
        self.vy -= 9.81 * time
    def getX(self):
        return self.x
    def getY(self):
        return self.y
# main函数
def main():
    angle, vel, h0, time = getInput()
    cball = Projectile(angle, vel, h0)
    while cball.getY() >= 0.0:
        cball.update(time)
    print(f'Distance: {cball.getX():0.1f} meters.')
                
                                        
                                    文件大小:1.74MB
                                
                                
                                
                            
评论区