__new__方法:必须要有返回值
def __new__(cls):
return object.__new__(cls);
单例模式
第一种方法:
class User(object):
__instance = None
def __init__(self):
@classmethod
def get_instance(cls):
if not cls.__instance:
cls.__instance = User()
return cls.__instance
u1 = User.get_instance()
第二种方法
class User(object):
__instance = None
def __init__(self)
pass
def __new(cls):
if not cls.__instance:
cls.__instance = object.__new__(cls)
return cls__instance
工厂模式:用工厂的方法代替new操作的一种模式
简单工厂模式:
class Factory:
@staticmethod
def create_tool(type):
if type == xx:
return Tool()
工厂方法模式
class Factory(object):
def create_tool();
pass
class A_Factory(Factory):
def create_tool():
return A()
class B_Factory(Factory):
def create_tool():
return B()
异常
try
pass
except IOError,NameError:
pass
else: 没有出现异常的情况执行的代码
pass
finally: #不管出错不出错始终要执行的
pass
Exception:所有异常的顶级父类
自定义异常:
class PasswordException(Exception):
def __init__(self):
pass
def __str__(self):
return "密码异常"
抛出异常:
raise PasswordException( )