我有这两个类,但我想知道在类中调用函数的最佳方法是什么。
我喜欢将这个用于属性:
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)
答案 0 :(得分:9)
这取决于。 x
和y
是myclass()
状态的一部分还是外部与班级互动?
如果x
和y
不属于myclass()
实例的状态,则不应将其存储在属性中。它们将作为参数传递。
假设你有一个 car 对象,你需要知道如果它与其他东西相撞会发生什么。那个“别的东西”不是汽车的一部分,所以你要调用car.collide()
方法并传入'其他'作为参数:
car.collide(something_else)
但是碰撞时的车速以及汽车的质量等都是汽车车身的状态的一部分,所以它们属于:
car.speed = 80
car.mass = 1200
car.collide(something_else)