请先看代码和执行结果,再解答疑问。
疑问:为什么 三个坐标都是 : -9 ,-8 ? 我原以为是随机生成3个不同点的坐标 。
代码如下:
import random
class Point:
# 初始化方法,如果没有传参,默认随机生成一个 point 对象
def __init__(self, x=random.randint(-20, 20), y=random.randint(-20, 20)):
print(x, y)
self.x = x
self.y = y
# 显示坐标点
def show_point(self):
print(f‘点的坐标为:x={self.x} , y={self.y}\n‘)
p1 = Point()
print(id(p1))
p1.show_point()
p2 = Point()
print(id(p2))
p2.show_point()
p3 = Point()
print(id(p3))
p3.show_point()
执行结果如下:
D:\SkyWorkSpace\WorkSpace\Pytest\Temp\day09\venv\Scripts\python.exe D:/SkyWorkSpace/WorkSpace/Pytest/Temp/day09/test_05/test_02.py
-9 -8
2107928358624
点的坐标为:x=-9 , y=-8
-9 -8
2107927254592
点的坐标为:x=-9 , y=-8
-9 -8
2107928826208
点的坐标为:x=-9 , y=-8
Process finished with exit code 0
001、__init__ ( x=andom.randint(-20, 20) ) ) 默认参数值 ,构建的对象,值都一样 ??