为什么我的第二个变量(x2,y2)没有定义,而我的第一个变量(x1,y1)却定义了?

问题描述 投票:0回答:1
class Line():
    
    def __init__(self, coor1 , coor2):
        
        self.coor1 = coor1 
        self.coor2 = coor2 
      
    
    def distance(self):
        
        for x1,y1 in self.coor1, x2,y2 in self.coor2:
                
                distance = ((x2-x1)**2 + (y2-y1)**2)**0.5
        
        return distance

coordinate1 = (3,2)
coordinate2 = (8,10)

li = Line(coordinate1,coordinate2)

li.distance()

嗨,我不太清楚为什么(x2,y2)无法定义,而第一个变量(x1,y1)可以定义。我不太确定如何在 for 循环中包含两个元组,但是不应该同时定义两个元组或者都不定义它们吗?谢谢!

python oop iterable-unpacking
1个回答
3
投票

您没有正确使用for循环。您不需要循环来一次分配多个值。只要这样做:

class Line():
    
    def __init__(self, coor1 , coor2):
        self.coor1 = coor1 
        self.coor2 = coor2 
    
    def distance(self):
        x1,y1 = self.coor1 
        x2,y2 = self.coor2
        distance = ((x2-x1)**2 + (y2-y1)**2)**0.5
        return distance
    
coordinate1 = (3,2)
coordinate2 = (8,10)

li = Line(coordinate1,coordinate2)

print(li.distance())

由于元组包含两个值,因此它们将被分配给以逗号分隔的 2 个变量:

x,y = (1,2)

相同
x = 1
y = 2
© www.soinside.com 2019 - 2024. All rights reserved.