鱼C论坛

 找回密码
 立即注册
查看: 3240|回复: 2

[已解决]请教描述符一章中的self.fget(instance)怎么理解?

[复制链接]
发表于 2018-12-7 21:16:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
请问,这里的 self.fget(instance)是  get 函数?还有后面的self.fset(instance,value)怎么理解呢

class myypro:
   def __init__(self,fget = None,fset = None,fdel = None):
      self.fget = fget
      self.fset = fset
      self.fdel = fdel

   def __get__(self,instance,owner):
      print('动静のget')
      return self.fget(instance)

   def __set__(self,instance,value):
      print('有点动静のset')
      self.fset(instance,value)

   def __delete__(self,instance):
      print('一不小心9删掉了')
      self.fdel(instance)

class C:
   def __init__(self):
      self.xx = None

   def getx(self):
      return self.xx

   def setx(self,value):
      self.xx = value

   def delx(self):
      del self.xx

   x = myypro(getx,setx,delx)
最佳答案
2018-12-8 01:13:43
我个人是这么理解的:
self.fget(instance)、self.fset(instance,value)在这里是为了模块化的写法;
self.fget(instance)获取本身输出的然后return出来;
self.fset(instance,value)的到从外部输出的然后输入到内部;
其中fget与fset都是对象的函数!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-12-8 01:13:43 | 显示全部楼层    本楼为最佳答案   
我个人是这么理解的:
self.fget(instance)、self.fset(instance,value)在这里是为了模块化的写法;
self.fget(instance)获取本身输出的然后return出来;
self.fset(instance,value)的到从外部输出的然后输入到内部;
其中fget与fset都是对象的函数!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2019-8-1 09:48:04 | 显示全部楼层
我还不明白这个,而且self.fget不是实例属性吗?为什么又变成了方法咧?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-23 04:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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