今天学习了new方法,new方法的单例模式,异常,异常的捕获,制造异常,相关笔记如下
#new方法
class CapStr(str):
def __new__(cls, *args, **kwargs):
return super().__new__(cls)
def __init__(self,string):
self.string=string.upper()
a=CapStr("i love you")
print(a.string)
#print("i love you".upper())
#单例模式
class Person:
pass
xiaoming= Person()
xiaohong= Person()
# print(id(xiaohong))
# print(id(xiaoming))
class A:
_instance=None #实例 私有属性
def __new__(cls, *args, **kwargs):
if cls._instance==None:
cls._instance=object.__new__(cls)#super和object都可以
return cls._instance
else:
return cls._instance
a=A()
b=A()
print(id(a))
print(id(a))
#BaseException
SystemExit #python退出异常
KeyboardInterrupt #ctrl+c
GeneratorExit #
Exception #普通异常
#以上都继承BaseException
#错误回溯,也叫异常传递
# def a():
# aaa
#
# def b():
# a()
#
# def c():
# b()
#
# c()
# try:
# a
# except Exception as e:
# print(e)
#制作异常
class jianqiError(Exception):
pass
def func(name):
if name == "哈哈哈":
print("非常好")
else:
raise jianqiError("不行")
try:
func("haha")
except jianqiError as e:
print(e)






