|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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],
是不是意味着如果一个类的某一个属性为列表的话,多次实例化之后,所有的实例的该属性都会变成最后一个实例的属性? |
|