在这段代码中,stu_1=Student没有括号,stu2=Student()有括号,但是效果好像是一样的?这是为什么?
括号里是针对class自带的初始化赋值
你可以做这样两个实验:
print(Student.name)
,会发现结果和你输出stu_1.name
一样。stu_3 = Student
,不用给它赋值,输出它的name
属性,看看是什么结果。使用print(id(Student))查看其地址,会发现stu_1其实是对Student的引用,基于此,你甚至可以用stu_2 = stu_1()
来等价替换stu_2 = Student()
望采纳!