|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
定义了一个温度类, 然后定义两个描述符类用于描述摄氏度和华氏度两个属性.
两个属性会自动进行转换, 也就说, 你可以给摄氏度这个属性赋值, 然后打印的华氏度属性是自动转换后的结果
class Celsius:
def __init__(self, value = 26.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 ()
>>>#先运行程序
>>> temp = Temperature()
>>> temp.cel
26.0
>>> temp.fah
Traceback (most recent call last):
File "<pyshell#5>", line 1, in <module>
temp.fah
AttributeError: 'Temperature' object has no attribute 'fah'
>>>
本帖最后由 BngThea 于 2017-10-13 15:50 编辑
fah 那一行的缩进不对 
|
|