魔法方法
下面制作一个关于程序运行时间的代码
import time as t
class MyTimer():
def start(self):
self.start=t.localtime()
print("计时开始")
def stop(self):
self.stop=t.localtime()
self._calc()
print("计时结束")
def _calc(self):
self.lasted=[]
self.prompt="总共运行了"
for index in range(6):
self.lasted.append(self.stop[index]-self.start[index])
self.prompt += str(self.lasted[index])
print(self.prompt)
t1=MyTimer()
t1.start()
t1.stop()
输出为
计时开始
总共运行了00000000
计时结束
上述代码使用start stop 方法进行输出
下面介绍描述符
描述符就是将某种特殊类型的类的实例指派给另一个类的属性
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):
del self._x
x=MyProperty(getx,setx,delx)
q=c()
q.x="x-man"
q.x
q._x
下面代码测试摄氏温度转换
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 Tempeature:
cel=Celsius()
fgh=Fahrenheit()
temp=Tempeature()
print(temp.cel)
print(temp.fgh)
输出为
26.0
78.80000000000001
上述代码 将一个类的实例赋给另一个类,然后再进行输出
以上皆是
描述符就是将某种特殊类型的类的实例指派给另一个类的属性的使用