1.静态方法
class Jt:
@staticmethod
def show():
print("input")
1.静态方法可以直接类对象调用,也可以通过实例对象调用
2.不需要在()内写self,cls
3.格式:在前面加@staticmethod
4.就是类里面的普通方法
2.单例模式
主要的就是重写‘new’方法回收站就是单例模式的一个典型的应用整个系统回收站都是同一个实例对象
class A:
__instance = None
def __new__(cls,*args,**kwargs):
if cls.__instance is None:
cls.__instance = object.__new__(cls)
return cls.__instance
else:
return cls.__instance
#如果__instance为空,那么创建一个新的实例对象,如果已经有值那么就直接返回__instance
优点:1、在单例模式中,活动的单例只有一个实例,对单例类的所有实例化得到的都是同样的一个实例,确保所有的对象访问的一个实例
2、提供了对唯一实例的受控访问
3、内存中只有一个对象,节约系统资源
4、可以实现可变数目的实例
5、避免对资源的多重占用
缺点: 1、不适用变化的对象,单例会引起数据错误
2、扩展有困难
3、开销问题 应用场景: 资源管理类一般设计成单例模式 需要频繁实例化然后销毁的对象 创建对象耗时或者耗费资源过多但又经常用到的对象 有状态的工具类对象 频繁访问数据库或者文件的对象
3.工厂模式
通过一个类将其他类所创建的对象集中在一起,有利于代码的后续扩展,将功能划分的更具体
class App(object):
def app_name(self,name):
if name == "淘宝":
return Tabao()
elif name == "百度":
return Baidu()
elif name == "UC":
return Uc()
else:
return "无法识别APP"
class Tabao():
pass
class Baidu():
pass
class Uc():
pass
app=App()
a1=app.app_name('淘宝')
a2=app.app_name('百度')
a3=app.app_name('UC')
print(a1)
print(a2)
print(a3)
4.try异常处理
4.1简写模式
a=1
b=0
try:
print(a/b)
print(5555550)
except Exception as e:
print(e)
注意点
1.如果try中的语句错误不会报错,会将错误在except中打印出来
2.错误语句下的语句不会执行
4.2完整模式
a=1
b=0
try:
print(a/b)
print(5555550)
except Exception as e:
print(e)
else:
print('进入else')
finally:
print('进入finally')
注意点:
1.finally不管语句是否正确,一定会执行,可以用做退出程序关闭程序这类的操作
2.else:当语句正常执行的时候,走else这个分支