zwy12138 发表于 2015-12-25 20:35:05

描述符有关

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__?

gonff 发表于 2015-12-25 20:35:06

假设做T=Temperature()
注意 Celsius类调用的是self.value,也就是T.cel.value,返回值可以对T.cel赋值。而Fahrenheit类调用的是,instance.cel和instance.fah也就相当于对T.cel和T.fah直接读取或赋值。
3#说的就是对的,可能表述你不一定能一下接受。

zerotens 发表于 2016-1-18 15:20:15

哪一讲里面的?能更详细点吧?

python_02 发表于 2016-2-29 19:32:51

不用cel 来触发 fah的,因为统一是用cel来结算的。
所以只要cel的结果就可以,fah是通过cel转换的

comeonhcl 发表于 2016-8-8 13:55:34

没看明白
页: [1]
查看完整版本: 描述符有关