|
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#说的就是对的,可能表述你不一定能一下接受。
|