调用方法的最佳方法 - Python

时间:2015-02-27 23:40:38

标签: python python-2.7 class oop methods

我有这两个类,但我想知道在类中调用函数的最佳方法是什么。

我喜欢将这个用于属性:

class myclass():
    def myfunction(self):
        return self.x + self.y

z = myclass()
z.x = 4
z.y = 3
print z.myfunction()

但我不知道它是否正确。或者我应该使用它而不是最后一个?

class myclass():
    def myfunction(self,x,y):
        return x + y

z = myclass()
print z.myfunction(4,3)

1 个答案:

答案 0 :(得分:9)

这取决于。 xymyclass()状态的一部分还是外部与班级互动?

如果xy不属于myclass()实例的状态,则不应将其存储在属性中。它们将作为参数传递。

假设你有一个 car 对象,你需要知道如果它与其他东西相撞会发生什么。那个“别的东西”不是汽车的一部分,所以你要调用car.collide()方法并传入'其他'作为参数:

car.collide(something_else)

但是碰撞时的车速以及汽车的质量等都是汽车车身的状态的一部分,所以它们属于:

car.speed = 80
car.mass = 1200
car.collide(something_else)