概述
Python的延迟初始化主要是指对象第一次被创建时才进行初始化,其主要是为了提高计算性能,避免计算浪费并减少,减少程序的内存需求, 总结起来如下:
类属性的延迟计算就是将类的属性定义成一个property,只在访问的时候才会计算,而且一旦被访问后,结果将会被缓存起来,不用每次都计算
下面一步步了解一下python的这一功能
原始程序
class my_class(object):
def __init__(self,name):
self.name = name
def get_name(self):
print '获取姓名'
return self.name
# 原始
obj = my_class('xiaoming')
print obj.name
print obj.get_name()
print obj.get_name()
# 结果
xiaoming
获取姓名
xiaoming
获取姓名
xiaoming
上面程序中,my_class的属性有name,而get_name主要是类获取属性值的方法,具体方法如上述代码所示
注意到,获取类的属性值,必须先实例化一个对象,再通过对象调用类内的方法,这样不免不好,若是将方法转为属性,直接访问不是更好,因此就有了property
property
property主要将方法的访问转变成属性的方法
class my_class(object):