波大大12138 发表于 2022-10-13 14:52:53

属性定义在初始化方法和其他方法中定义区别

python类中,定义属性变量在初始化方法中定义和在后面的方法(普通的方法)中定义有什么区别?为什么有时在初始化方法就定义了属性,有时在后面其他方法中定义?

jackz007 发表于 2022-10-13 15:08:28

本帖最后由 jackz007 于 2022-10-13 15:45 编辑

      按道理,任何对象的所有属性都应该在创建对象的时候全部就绪,并完成初始化,这样,对象的各个方法是并联关系,就是说,各方法可以不分先后随意使用,但是,Python 对象允许用户在普通的类方法中随时添加新的属性。这样做的结果,使对象方法(至少是部分方法)是串联关系,就是说,某些方法的调用需要遵循一定的顺序,否则,如果在新的属性尚未被添加的时候进行了访问,就会使程序奔溃,这样看的话,这种特性其局限性也是蛮大的。

jcpython2 发表于 2022-10-13 15:11:02



不太理解你的问题,你的意思是像我下面代码两种情况定义a吗,如果是的话,在调用前就要定义就可以了

比如我的a如果在if内会被判断或者赋值,那么a要写在if前,不然你什么时候用上就赋值就好

a =2

if ........
    a = 2
页: [1]
查看完整版本: 属性定义在初始化方法和其他方法中定义区别