学习D12

静态方法

格式
@staticmethod
def .......

 例子:
 class BMW():
     __money = 1000
     brand = 'BMW BMW BMW'
     
     @classmethod
     def change(cls,brand):
         cls.brand = brand
         
     @staticmethod
     def showinfo():
     	print('aa')
     	
     	
################调用静态方法##################

obj1 =BMW('asd')
obj1.showinfo

不需要self,cls
通过类对象与实例对象进行调用
就是普通的函数


用处:没什么用

单例模式

单例模式的目的:

就是为了无论创建多少个实例对象,都是用一个对象

节约系统资源

优点:

1、在单例模式中,活动的单例只有一个实例,对单例类的所有实例化得到的都是同样的一个实例,确保所有的对象访问的一个实例
2、提供了对唯一实例的受控访问
3、内存中只有一个对象,节约系统资源
4、可以实现可变数目的实例
5、避免对资源的多重占用

缺点:

1、不适用变化的对象,单例会引起数据错误
2、扩展有困难
3、开销问题
应用场景:
资源管理类一般设计成单例模式
需要频繁实例化然后销毁的对象
创建对象耗时或者耗费资源过多但又经常用到的对象
有状态的工具类对象
频繁访问数据库或者文件的对象

class Test1():
	#用一个类属性保存new方法创建出来的对象
	__obj1 = None
	#重写 new 方法 
	def __new__(cls,*args,**kwargs):
		#添加创建单例的条件
		if __obj1 ==None:  #如果没有对象
            #调用父类(object类)new方法创建对象,因为new方法就是用来创建对象的方法
            cls.__obj1 = object.__new__(cls)
		#返回创建出来的对象
		return cls.__obj1
	#__init__方法重复调用
	def __init__(self)

工厂模式

概念:

类似将生产环节重新创建了一个类或者函数,工厂函数或工厂类对生产环节进行了封装,有利于代码后续的扩展

个人理解:

在一个大的类里 创建并返回许多其他类,类似 造车厂(大的类)可以造很多 其他品牌(其他类) 的车

例子:

class Carshop():
	def __init__(self,brand):
		self.brand = brand 
	
	def creat_car(self,brand):
	
		if self.brand == 'BMW':
			return BMW()
		else self.brand == 'BYD':
			return BYD()

class BMW():
	pass
class BYD():
	pass
class Benchi():
	pass


异常处理

简写

try:

	b = 1/0
	print('step1')
except Exception as e :
	print('异常')
	
try 分支 若是发生错误,try中的出错的语句的后面 就不再执行了
except 分支 try中的语句出现错误就进入except 分支 
finally 分支 中的语句一定会执行到,一般用于关闭文件 关闭链接,
else 分支 当try中的语句能够正常执行的时候 才会进入else 中的语句

try:

	b = 1/0
	print('step1')
except Exception as e :
	print('异常')
else:
	print('else')
finally:
	print('finally')


参考学习资料:http://www.bjsxt.com/

http://www.runoob.com/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值