PTT
Submit
Submit
选择语言
正體中文
简体中文
PTT
Python
[问题] @property
楼主:
tsaiminghan
(tsaiminghan)
2019-07-26 14:44:29
我在class中使用@property, 但是log不会印,应该没有被呼叫到
问题看起来跟tkinter.Frame有关,使用class item(object)就
可以正常使用,请问不会动的原因和该如何修改?谢谢
(使用python2.7)
class item(tkinter.Frame):
@property
def level(self):
print 'get property level'
return self._level
@level.setter
def level(self, value):
print 'set property level:', value
self._level = value
作者:
somoskylin
(八七booboo)
2019-07-26 15:33:00
他不是函式吧……
楼主:
tsaiminghan
(tsaiminghan)
2019-07-26 15:59:00
我改一下,总之就是不会被叫到
作者:
yushes920179
(乐冰)
2019-07-26 18:49:00
撞名了?
作者:
s860134
(s860134)
2019-07-26 23:04:00
最粗浅的原因是因为 tkinter.Frame 没有继承到 object也就是他是所谓的 old-style/classic classes实际上是 item 和他的父类别都找不到 __setattr__item 的实例就会把 instance.__dict__ 里面加上 "level"
作者:
thefattiger
(LT)
2019-07-27 00:59:00
不要再用Python2了
作者:
s860134
(s860134)
2019-07-27 11:23:00
目前想到的方法 1. 复写 item class __setattr__2. 直接让 item 用多重继承 object...不过 2. 会有什么副作用 可能要看一下多重继承XD刚看了一下: 文件上有写:
https://bit.ly/2Y8jIjX
看这个第二段的最后一句: "Note that descriptors are""only invoked for new style objects or classes"所以你要做的事情,要嘛让他是只鸭子,或是让他像只鸭子
楼主:
tsaiminghan
(tsaiminghan)
2019-07-27 18:46:00
谢谢,我会用settatr去试试看。
继续阅读
Re: [问题] 新手学python想抓网页资料
alvinlin
[问题] 掌握 python
plsmaop
[问题] 新手学python想抓网页资料
yeeche
[问题] python基础课程询问
cloud812016
[问题]请问周期曲线的高底起伏大小
nicha115
Re: [问题] 这问题提该怎解决
sating00
[问题] 字串转码问题
tg70197
Re: [问题] 这问题提该怎解决
papple23g
[问题] 这问题提该怎解决
spong
[问题] 新手解LeetCode请益
bbb654123
Links
booklink
Contact Us: admin [ a t ] ucptt.com