001、__init__ ( x=andom.randint(-20, 20) ) ) 默认参数值 ,构建的对象,值都一样 ??

请先看代码和执行结果,再解答疑问。

疑问:为什么 三个坐标都是 : -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) ) ) 默认参数值 ,构建的对象,值都一样 ??

上一篇:Markdown语法汇总


下一篇:接口测试的时候如何一键获取 cookie, 并在其他接口引用?