Skip to main content
 首页 » 编程设计

python之在python中创建对象时如何调用对象的方法

2025年05月04日22lyj

我有一个问题,但我不知道如何解释它,所以让我在这里放一些代码:

class 2DVector: 
    def __init__(self, x, y): 
        self.x = x 
        self.y = y 
 
    def multiply(self, scalar): 
        self.x *= scalar 
        self.y *= scalar 

是否可以做这样的事情

vector1 = 2DVector(1, 1).multiply(3) 
# x == 3, y == 3 

还是我总是必须这样做

vector2 = 2DVector(1, 1) 
# x == 1, y == 1 
vector2.multiply(3) 
# x == 3, y == 3 

请您参考如下方法:

在 multiply 方法的末尾添加 return self 允许您使用第一个选项:

class TwoDVector: 
    def __init__(self, x, y): 
        self.x = x 
        self.y = y 
 
    def multiply(self, scalar): 
        self.x *= scalar 
        self.y *= scalar 
        return self 
 
 
if __name__ == '__main__': 
    vector = TwoDVector(2, 3).multiply(2) 
    # vector.x == 4, vector.y == 6