Python - "add property for the field" 是做什么的?
Python - what does "add property for the field" do?
我正在 pycharm 开发一个 python 程序。在我的代码的这一行下:
rut = Tk()
rut.tk.call('wm', 'iconphoto', rut._w, PhotoImage(file=icon_file))
我在 'rut._w' 上收到警告说:
access to a protected member _w of a class
当我按下 ctrl + enter 时,它会给我一个选项:
add property for the field
当我点击它时,它会将行更改为:
rut.tk.call('wm', 'iconphoto', rut.w, PhotoImage(file=icon_file))
但我知道这还不是全部,因为如果我手动更改名称,我将得到:
AttributeError: '_tkinter.tkapp' object has no attribute 'w'
那么这里发生了什么? _w 是什么意思,.w 是什么意思,为字段添加 属性 是什么意思,它实际上是如何完成的?
请注意,Tk 是从不在我的项目文件中的 tkinter 包导入的,所以我想 pycharm 无法编辑它。
__str__
method defined for Tk returns self._w
即是一个getter为私有属性.
您可以使用:
rut.tk.call('wm', 'iconphoto', str(rut), PhotoImage(file=icon_file))
Pycharm 所做的是将其添加到 Tkinter
class。这很糟糕,因为您的应用程序保证可以在您的机器上运行,但不能在 Tkinker
class 未打补丁的其他机器上运行。
Cmd + Click
或Ctrl + Click
(取决于你的平台)在Tk()
上rut = Tk()
打开class定义。您会在最后看到添加的内容。
@property
def w(self):
return self._w
我正在 pycharm 开发一个 python 程序。在我的代码的这一行下:
rut = Tk()
rut.tk.call('wm', 'iconphoto', rut._w, PhotoImage(file=icon_file))
我在 'rut._w' 上收到警告说:
access to a protected member _w of a class
当我按下 ctrl + enter 时,它会给我一个选项:
add property for the field
当我点击它时,它会将行更改为:
rut.tk.call('wm', 'iconphoto', rut.w, PhotoImage(file=icon_file))
但我知道这还不是全部,因为如果我手动更改名称,我将得到:
AttributeError: '_tkinter.tkapp' object has no attribute 'w'
那么这里发生了什么? _w 是什么意思,.w 是什么意思,为字段添加 属性 是什么意思,它实际上是如何完成的?
请注意,Tk 是从不在我的项目文件中的 tkinter 包导入的,所以我想 pycharm 无法编辑它。
__str__
method defined for Tk returns self._w
即是一个getter为私有属性.
您可以使用:
rut.tk.call('wm', 'iconphoto', str(rut), PhotoImage(file=icon_file))
Pycharm 所做的是将其添加到
Tkinter
class。这很糟糕,因为您的应用程序保证可以在您的机器上运行,但不能在 Tkinker
class 未打补丁的其他机器上运行。
Cmd + Click
或Ctrl + Click
(取决于你的平台)在Tk()
上rut = Tk()
打开class定义。您会在最后看到添加的内容。
@property
def w(self):
return self._w