Python 学习笔记 - 面向对象(单例模式和异常处理)

简介:

单例模式,也叫单子模式,是一种常用的软件设计模式。在应用这个模式时, 单例对象的类必须保证只有一个实例存在。许多时候整个系统只需要拥有一个 全局对象,这样有利于我们协调系统整体的行为。 --以上来自维基百科


实现他的方式有很多,比如http://foofish.net/blog/93/python_singleton


一个简单的方式是通过一个静态字段进行判断。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class  Foo:
     instance  =  None
     def  __init__( self ,name):
         self .name  =  name
     @ classmethod
     def  get_instance( cls ,name):
         # cls类名
         if  cls .instance:
             return  cls .instance
         else :
             obj  =  cls (name)
             cls .instance  =  obj
             return  obj
obj1  =  Foo.get_instance( 'alex' )
print (obj1.name)
obj2  =  Foo.get_instance( 'bee' )
print (obj2.name)
- - - - - - - - - - - -
alex
alex



第二个要点是异常处理。

一般的基本形式是:

1
2
3
4
try :
     pass
except  Exception as ex:
     pass


比如说,注意如果要捕获不同的异常,Exception as ex需要写在最后,因为他会把任何所有的异常都放进去。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
while  True :
     num1  =  input ( 'num1:' )
     num2  =  input ( 'num2:' )
     try :
         li  =  []
         li[ 100 ]
         num1  =  int (num1)
         num2  =  int (num2)
         result  =  num1  +  num2
     except  ValueError as ex:
         print (ex)  # str
     except  IndexError as ex:
         print (ex)  # str
     except  Exception as ex:
         print (ex)


还有一种表达形式是 try..except..else..finally


else表示如果没有错误执行的操作,finally则是所有操作结束之前都需要执行的操作。

wKioL1f0hlST43icAAJKLO2unKk325.png


如果想主动执行一个错误,可以通过raise来实现,比如

1
2
3
4
5
6
7
8
9
10
11
12
>>>  try :
     raise  ValueError( '主动错误一下' # self.message = '主动错误一下'
     print ( 1234 )
except  ValueError as ex:
     print (ex)  # str
except  Exception as ex:
     print (ex)  # __str__, return self.message
else :
     pass
finally :
     pass
主动错误一下


最后看看断言 assert,如果一切正常,那么继续他后面的执行程序,否则抛出一个异常


比如

1
2
3
4
5
6
7
8
9
10
>>> a = 100
assert  a> 10
print ( "Ok" )
assert  a< 40 , print ( "oh wrong" )
print ( "wrong" )
Ok
oh wrong
Traceback (most recent call last):
   File  "<input>" , line  4 in  <module>
AssertionError






本文转自 beanxyz 51CTO博客,原文链接:http://blog.51cto.com/beanxyz/1858820,如需转载请自行联系原作者

目录
相关文章
|
12天前
|
程序员 开发者 Python
Python网络编程基础(Socket编程) 错误处理和异常处理的最佳实践
【4月更文挑战第11天】在网络编程中,错误处理和异常管理不仅是为了程序的健壮性,也是为了提供清晰的用户反馈以及优雅的故障恢复。在前面的章节中,我们讨论了如何使用`try-except`语句来处理网络错误。现在,我们将深入探讨错误处理和异常处理的最佳实践。
|
24天前
|
存储 C语言 Python
【Python】学习笔记day3
【Python】学习笔记day3
27 1
|
30天前
|
程序员 开发者 Python
Python错误与异常处理详解
Python提供强大的错误和异常处理机制,包括语法错误(编译时)和运行时错误。异常处理通过try-except语句实现,优雅地处理运行时错误。例如,尝试除以零会引发`ZeroDivisionError`,可通过except捕获并处理。可以使用多个except处理不同类型的异常,或者用`Exception`捕获所有异常。此外,用raise语句可手动抛出异常,增强代码健壮性。理解并运用这些机制能提升Python编程水平。
|
1月前
|
Python
解释 Python 中的异常处理机制。
解释 Python 中的异常处理机制。
21 0
|
1月前
|
Python
python中文件和异常处理方法(二)
python中文件和异常处理方法(二)
13 0
|
1月前
|
Python
python-面向对象
python-面向对象
15 2
|
1月前
|
Python
python中文件和异常处理方法(一)
python中文件和异常处理方法(一)
29 0
|
1月前
|
Python
python中文件和异常处理方法(三)
python中文件和异常处理方法(三)
20 0
|
1月前
|
Python
Python异常处理
Python异常处理
12 0
|
5天前
|
程序员 数据库连接 索引
《Python 简易速速上手小册》第5章:Python 常见错误和异常处理(2024 最新版)
《Python 简易速速上手小册》第5章:Python 常见错误和异常处理(2024 最新版)
22 1