Python - "add property for the field"做什么?



我正在开发Pycharm中的Python程序。在我的代码的这一行下:

rut = Tk()
rut.tk.call('wm', 'iconphoto', rut._w, PhotoImage(file=icon_file))

我在" rut._w'"上发出警告:

访问类的受保护成员_W

,当我按CTRL ENTER时,它给了我一个选项:

添加字段属性

,当我单击它时,它将行更改为:

rut.tk.call('wm', 'iconphoto', rut.w, PhotoImage(file=icon_file))

,但我知道这并不是全部所做的,因为如果我手动更改名称,我会得到:

attributeError:'_tkinter.tkapp'对象没有属性'w'

那么这里发生了什么?_w是什么意思,.w呢?

请注意,TK是从我的项目文件中不在的TKINTER软件包中导入的,所以我想Pycharm无法编辑它。

tk定义的 __str__方法返回 self._w i。

您可以使用:

rut.tk.call('wm', 'iconphoto', str(rut), PhotoImage(file=icon_file))


Pycharm正在做的是将其添加到Tkinter类中。这是不好的,因为您的应用程序可以保证在计算机上使用,但在Tkinker类未修补的其他机器上不起作用。

Cmd + ClickCtrl + Click (取决于您的平台)rut = Tk()中的Tk()上以打开类定义。您会在末尾看到此添加。

@property
def w(self):
    return self._w

相关内容

最新更新