有时候用python,就希望有类似Java的类静态变量,这样就可以方便很多,但我翻遍了《python基础教程》(我的python启蒙书),也没有找到关于类静态变量的描述,但是书上有这么一段话。

比如我的主窗口是CMainWindow类(类名不重要,继承自QMainWindow),在该类实例self中部署textEdit,为该类实例化的界面的按钮中添加的响应函数edit中新建类Dialog的实例并show()如图。



然后在Dialog类中再添加方法函数,再进行实例化,这时我如果想在Dialog2,Dialog3…等类中修改CMainwindow实例的textEdit,就比较麻烦(我承认我排版有点问题,这代码再加以优化会更优雅,可能不会遇到这个问题),如果有一个静态的类变量如CMainwindow.textEdit就好了,但是没有,也可能有,但是我不知道,去找它费时费力,既然如此,那就传递参数吧。python类的每个方法第一个参数都是self,我们观察代码可以看到继承自QDialog和qtdesigner转换后的类的构造函数的第二个参数parent可以加以利用,那么我们可以用Dialog类的变量(这里取名board)来接收CMainwindow的实例,然后可以再用Dialog2类的变量来接收Dialog类的实例,依次类推,就可以将参数传递下去,在程序中任何一个位置都可以修改其他类的参数了。
使用python的传递参数达到类静态变量的效果
最新推荐文章于 2024-04-20 15:01:27 发布
本文探讨了在Python中如何模拟Java的类静态变量,以解决在多层类实例间共享数据的问题。作者通过在类中传递参数的方式,利用构造函数的`parent`参数来实现类间的数据传递,从而达到类似静态变量的效果。这种方法允许在程序的任意位置修改其他类的参数,提高了代码的灵活性。

581

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



