|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 游戏小虾米 于 2017-7-26 00:48 编辑
Tip:
一,理论
二,应用
1
>>> class MyProperty:
def __init__(self, fget = None, fset = None, fdel = None):
self.fget = fget
self.fset = fset
self.fdel = fdel
def __get__(self, instance, owner):
return self.fget(instance)
def __set__(self, instance, value):
self.fset(instance, value)
def __delete__(self, instance):
self.fdel(instance)
>>> class C:
def __init__(self):
self._x = None
def getX(self):
return self._x
def setX(self, value):
self._x = value
def delX(self):
del self._x
x = MyProperty(getX, setX, delX)
>>> c = C()
>>> c.x = 'X-man'
>>> c.x
'X-man'
>>> c._x
'X-man'
2 # 温度转化
- class Celsius:
- def __init__(self, value = 30.0):
- self.value = float(value)
- def __get__(self, instance, owner):
- return self.value
- def __set__(self, instance, value):
- self.value = float(value)
- class Fahrenheit:
- def __get__(self, instance, owner):
- return instance.cel * 1.8 +32
- def __set__(self, instance, value):
- instance.cel = (float(value) - 32) / 1.8
- class Temperature:
- cel = Celsius()
- fah = Fahrenheit()
-
复制代码
>>> t = Temperature()
>>> t.cel = 40
>>> t.cel
40.0
>>> t.fah
104.0
>>> t.fah = 100
>>> t.fah
100.0
>>> t.cel
37.77777777777778
三,课后练习 |
评分
-
查看全部评分
|