学到这个知识已经是第4,第5遍了,但还是跟盲人摸象一样。
还是做点记录,和测试
图1:这里的name和age,是指对实例初始化的时候,实例会带有的属性,a和b是等待客户传入的参数
图2:按照这样的设置,来进行的测试结果
如果,我们在__init__里面设置了2个参数,但是创建实例化对象时候只给了一个,那么,系统就会报错的,如下面
图3:仅设置了name的实参,没给age的实参
当然,如果在__init__里面给了默认参数了,也可以仅输入一个,也是可以的
那name和age只是创建实例对象时候初始化时候该有的,如果后面像用到其他属性呢?
答案是在方法中可以自行定义,如下图
我这里只是举了个例子,身高是年龄的3倍关系,就位对象创建了一个tall属性,后面可以随时调用
然后,需要记住的是,self一定要写,不然就等于是方法内的临时变量了,不是对象的属性了!!!
我们看下报错的那张图
然后我们来看一下,在初始化__init__的时候,如果没有带self的话,会有什么样的情况,如下:
下面例子,第7行里面,这个name没有self的前缀,所以实际上,这里的name只是一个__init__内部的临时局部变量,在后面根本不会用到,等于浪费了
我们看到my name is class global name这里,正式因为初始化__init__里面没有self.name属性,所以,他调用的是楼上的class变量
下面一行当你直接调用变量name的时候,因为class变量是针对类对象和实例对象的,所以,调用的name只能再往上一层,调用全局变量
组后一行的Person.name里的Person是类对象,所以调用的是class变量
本文详细解析了Python中类的初始化过程,包括__init__方法的使用,如何正确设置实例属性,以及如何避免常见错误。此外,还介绍了如何在类的方法中定义额外属性。
4769

被折叠的 条评论
为什么被折叠?



