描述符
Posted gdy123
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了描述符相关的知识,希望对你有一定的参考价值。
---恢复内容开始---
一、描述符(将某种特殊类型的类的实例指派给另一个类的属性)
__get__(self, instance, owner): 用于访问属性,它返回属性的值
__set__(self, instance, value): 将在属性分配操作中调用,不返回任何内容
—delelte__(self, instance): 控制删除操作,不返回任何内容
二、描述符代码
class MyDecriptor:
def __get__(self, instance, owner):
print("getting...", self, instance, owner)
def __set__(self, instance, value):
print("setting...", self, instance, value)
def __delete__(self, instance):
print("deleting...", self, instance)
class Test:
x=MyDecriptor()
class Myproperty:
def __init__(self, fget=None, fset=None, fdel=None):
self.fget=fget
self.fset=fset
self.fdel=fdel
def __get__(self, instance, owner):
return self.fget(instance)
def __set__(self, instance, value):
self.fset(instance, value)
def __del__(self, instance):
self.fdel(instance)
class C:
def __init__(self):
self._x=None
def getX(self):
return self._x
def setX(self, value):
self._x=value
def delX(self):
__delete__self._x
x=Myproperty(getX, setX, delX)
三、实例温度计
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, owener):
return instance.cel * 1.8 + 32
def __set__(self, instance, value):
instance.cel=(float(value)-32)/1.8
class Temperature:
cel = Celsius()
fah = Fahrenheit()
---恢复内容结束---
以上是关于描述符的主要内容,如果未能解决你的问题,请参考以下文章
linux如何查看某个进程的文件描述符(查看文件描述符查看描述符)(文件描述符socket描述符不断递增不断增加问题排查)ls -l /proc/[pid]/fd