吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1409|回复: 6
收起左侧

[求助] PyQt5 的ui文件转为py文件,代码里关于面向对象的问题

[复制链接]
MyModHeaven 发表于 2022-11-25 15:09
Snipaste_2022-11-25_14-58-02.png

如图,这是ui文件转成py文件的代码, setupUi 函数里的控件都加上了 self ,那么这些控件是 Ui_Form 类的实例属性吗?如果不是实例属性的话,那这些又算什么,只是单纯的变量吗,加 self 和不加有什么区别?

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

johnMC 发表于 2022-11-25 15:30
按照我个人理解,就是实例属性跟__init__类型,如果不加,多个实例声明时会出现变量覆盖,导致控件混乱
XyD3 发表于 2022-11-25 15:57
加了self就是相当于把这些变量绑定到实例化对象,如果不加的话,就是相当于它只是某个函数内的局部变量,在外面就访问不了了
冬酒暖阳 发表于 2022-11-25 16:43
本帖最后由 冬酒暖阳 于 2022-11-25 16:46 编辑

self 指的是实例对象本身,前面加 self 就相当于把这个变量放到对象身上,如果不加的话在执行完 setupUi 函数之后,这些没有被其他地方使用的变量就会成为垃圾,会被 python 的垃圾回收器回收释放内存空间,等于说他只在 setupUi 这个函数执行的过程中存在,setupUi 执行结束后就被销毁了,就是这个 setupUi 方法的局部变量。而前面加上 self 就是将变量绑定到对象身上,它就成为了对象自己的实例属性,在 setupUi 执行结束之后,也不会被销毁。只有当这个对象也不再使用的时候,才会连同对象一起被销毁释放
cloud2010 发表于 2022-11-25 17:09

加self是实例属性,可以在类内部以self加点形式访问该属性,类在应用中被实例化成对象后,可以通过对象名加点的形式访问该属性

不加self是函数的局部变量,函数结束后就不存在了

E式丶男孩 发表于 2022-11-25 17:16
你看赋初值的时候啊,把对应类型的实例绑定到class的成员变量上去了
用温柔将我杀死 发表于 2022-11-25 19:19
本帖最后由 用温柔将我杀死 于 2022-11-26 20:50 编辑

好东西学习了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-1-12 01:51

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表