class Car(object): country = u'中国' def __init__(self, length, width, height, owner=None): self.owner = owner self.length = length self.width = width self.height = height self.country = "china"
加上@property变成有getter的对象
class Car(object): country = u'中国' def __init__(self, owner=None): self._owner = owner @property def owner(self): return self._owner @owner.setter def owner(self, value): self._owner = value @owner.deleter def owner(self): self._owner = None
#!/usr/bin/env python# -*- coding: utf-8 -*-#copyRight by heibankeclass Car(object): country = u'中国' __slots__=('length','width','height','owner','__dict__') def __init__(self, length, width, height, owner=None): self.owner = owner self.length = length self.width = width self.height = height def __getattr__(self,name): # 没找到的时候调用 print "__getattr__",name return self.__dict__.get(name,None) def __setattr__(self,name,value): print "__setattr__",name if name!='owner': assert value>0, name+" must larger than 0" self.__dict__[name]=value def __delattr__(self,name): print "__delattr__",name if name=='owner': self.__dict__[name]=None
type(name, bases, attrs) Name : 类名字符串 bases: 父类元组 Attrs: 属性字典
A = type('A', (object,), {'b': 1})a = A()
class final(type): def __init__(cls,name,bases,namespaces): super(final, cls).__init__(name, bases, atts) for klass in bases: assert not isinstance(klass, final)
#!/usr/bin/env python# coding: utf-8#copyRight by heibanke#
1. 从现在开始1000天后和1000天前是哪一天
import datetimea=datetime.date.today()b=datetime.datetime.now()d1=datetime.
timedelta(days=1000)d2=datetime.
timedelta(hours=1000)(a-d1).isoformat()(a+d1).strftime('%m/%d/%Y')b.isoformat()(b-d2)#
2. 离你的重要纪念日还有多少天important_day=datetime.datetime.
strptime('2008-06-18','%Y-%m-%d') important_day>bd3=b-important_dayd3.dayst=datetime.time(12,11,30)#
3. 两段程序哪个快些############## time.time and time.clock
####################import timea=input("please input 0 or 1:")
start_time = time.time()start_clock = time.clock()if a: sum_i=0 for i in range(100000):
sum_i+=ielse: sum_i=sum(range(100000))
print sum_itime.sleep(2)end_time = time.time()end_clock = time.clock()
print "time-delta:"print start_time-end_timeprint "clock-delta:"print start_clock-end_clock
#!/usr/bin/env python# coding: utf-8#copyRight by heibanke# 1. 从现在开始1000天后和1000天前是哪一天import datetimea=datetime.date.today()b=datetime.datetime.now()d1=datetime.timedelta(days=1000)d2=datetime.timedelta(hours=1000)(a-d1).isoformat()(a+d1).strftime('%m/%d/%Y')b.isoformat()(b-d2)# 2. 离你的重要纪念日还有多少天important_day=datetime.datetime.strptime('2008-06-18','%Y-%m-%d') important_day>bd3=b-important_dayd3.dayst=datetime.time(12,11,30)# 3. 两段程序哪个快些############## time.time and time.clock ####################import timea=input("please input 0 or 1:")start_time = time.time()start_clock = time.clock()if a: sum_i=0 for i in range(100000): sum_i+=ielse: sum_i=sum(range(100000))print sum_itime.sleep(2)end_time = time.time()end_clock = time.clock()print "time-delta:"print start_time-end_timeprint "clock-delta:"print start_clock-end_clock