奔跑的赵云 发表于 2020-12-12 10:08:54

关于 描述符

class Celsius:
    def __init__(self,value = 26.0):
      self.value = float(value)
    def __get__(self,instance,owner): #为什么get方法里面要传入owner这个参数,set里面就不需要了呢??
      print(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()

suchocolate 发表于 2020-12-13 14:53:48

固定的,__get__必须传输进去。
官方文档:https://docs.python.org/zh-cn/3.6/reference/datamodel.html#implementing-descriptors
页: [1]
查看完整版本: 关于 描述符