马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
import math as m
class Point:
position=[0,0]
def __init__(self, x, y):
self.position[0] = x
self.position[1] = y
class Line:
positionA = [0, 0]
positionB = [0, 0]
def __init__(self,pointA, pointB):
self.positionA = pointA
self.positionB = pointB
def getlen(self):
self.length=m.sqrt((self.positionA[0]-self.positionB[0])^2+(self.positionA[1]-self.positionB[1])^2)
print("AB的长度为", self.length)
xa=int(input('请输入点A的横坐标'))
ya=int(input('请输入点A的纵坐标'))
A = Point(xa,ya)
xb=int(input('请输入点B的横坐标'))
yb=int(input('请输入点B的纵坐标'))
B = Point(xb,yb)
AB=Line(A.position, B.position)
请输入点A的横坐标5
请输入点A的纵坐标5
请输入点B的横坐标2
请输入点B的纵坐标2
>>> AB.getlen()
AB的长度为 0.0
在实例化点A和点B之后,点A的position也变成了[2,2],导致长度最后为0,实例化点B之前,A的position是[5,5],
是不是意味着如果一个类的某一个属性为列表的话,多次实例化之后,所有的实例的该属性都会变成最后一个实例的属性? |