我正在開發pycharm中的python程序。在這行我的代碼: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不能編輯它。
'rut'是'Tk'的一個實例。 PyCharm似乎正在爲'Tk'類的源頭中的'Tk'實例定義'w'屬性。 –
Tk是從tkinter包中導入的,它不在我的項目文件中,所以我想pycharm不能編輯它(對不起,我應該在問題中澄清這個問題,我現在就來)@OluwafemiSule –
當Pycharm發生變化時,你的應用程序是否成功運行屬性爲'w'? AFAIK,[TK沒有定義'w'屬性](https://github.com/python/cpython/blob/3.6/Lib/tkinter/__init__.py#L1996)如果你的應用程序運行成功,你必須知道Pycharm是猴子修補的。請參閱我的回答,瞭解如何避免使用私有財產 –