| 
 | 
 
2鱼币 
- 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()
 
 
  复制代码 
此乃甲鱼上课例题,已知Temperature 的 fah 会触发cel 的 __set__, 但是 cel 怎样触发 fah 的 __set__?
假设做T=Temperature() 
注意 Celsius类调用的是self.value,也就是T.cel.value,返回值可以对T.cel赋值。而Fahrenheit类调用的是,instance.cel和instance.fah也就相当于对T.cel和T.fah直接读取或赋值。 
3#说的就是对的,可能表述你不一定能一下接受。 
 
 
 |   
 
 
最佳答案
查看完整内容 
假设做T=Temperature()
注意 Celsius类调用的是self.value,也就是T.cel.value,返回值可以对T.cel赋值。而Fahrenheit类调用的是,instance.cel和instance.fah也就相当于对T.cel和T.fah直接读取或赋值。
3#说的就是对的,可能表述你不一定能一下接受。 
 
 
 
 
 
 
 |