一、异常

AttributeError:试图访问一个对象没有的成员【属性和方法】

ValueError:值错误,传入了一个不期望的值

ImportError:无法导入模块或者包:基本上路径问题

IndexError:访问了不在范围内的索引

KeyError:试图访问字典中不存在的键

NameError:使用了还没被赋值的变量

TypeError:传入的数据类型和要求不符合

UnboundLocalError:试图访问一个还未被设置的局部变量:基本上是存在一个和局部变量重名的全局变量,使用global声明

SyntaxError:Python非法代码,代码无法编译  

二、单例设计模式

装饰器:作用于一个函数,也可以作用域一个类
def sigleton(cls):
  instance = {}
  #getInstance/defaultxxx/ currentxxx
  def getInstance(*args, **kwargs):
    #思路1:可以类似于new,通过是否为NOne
    #思路2:将cls作为key,cls对应的实例作为value存储到字典中
    if cls not in instance:
      instance[cls] = cls(*args, **kwargs) #dict[key] = value
     return instance[cls]
   return getInstance
@sigleton
class Test(object):
  pass
t1 = Test()
t2 = Test()
print(id(t1) == id(t2))
print(t1 is t2)

 (详细的看http://www.runoob.com/python3/python3-errors-execptions.html) 

这些事我写下来加强记忆的,希望我自己每次看到这句话都可以在心里默记一句,“加油,你还差的远呢”

04-30 04:05