本文目录:
1.类的几个常用方法(待完善)
2.类方法和静态方法
3.单列模式
4.异常
5.自定义异常
6.__init__文件和__all__语句的使用
1.类的几个常用方法(待完善):
1.__new__
创建类并返回这个类的实例
2.__init__
构造函数
3.__del__
被销毁时调用
4.__getattribute__(self, name)
访问类的属性时调用(注:调用类的方法时也会调用),name为属性的名字,此方法中不能调用self.类属性,
否则会死循环
5.__str__()
使用打印类时,类调用的方法
2.类方法和静态方法
#类方法,可以用classmethod来进行修饰,也可以不修饰
@classmethod
@classmethod
def test(cls):
return 'test'
def test(cls):
return 'test'
静态方法,@staticmethod来进行修饰
@staticmethod
@staticmethod
def test(cls):
return 'test'
def test(cls):
return 'test'
3.单列模式:
# 实例化一个单例
class Singleton(object):
__instance = None
def __new__(cls, age, name):
#如果类数字能够__instance没有或者没有赋值
#那么就创建一个对象,并且赋值为这个对象的引用,保证下次调用这个方法时
#能够知道之前已经创建过对象了,这样就保证了只有1个对象
if not cls.__instance:
cls.__instance = object.__new__(cls)
return cls.__instance
4.异常
try:
num = 100
print num
#except (IOError,NameError): #捕获多个异常(也可以分开处理)
except Exception as errorMsg: #捕获全部异常
print('产生错误了:',errorMsg)
else:
print('没有捕获到异常')
5.自定义异常
引发自定义的异常
你可以用raise语句来引发一个异常。异常/错误对象必须有一个名字,且它们应是Error或Exception类的子类
class ShortInputException(Exception):
'''自定义的异常类'''
def __init__(self, length, atleast):
#super().__init__()
self.length = length
self.atleast = atleast
def main():
try:
s = input('请输入 --> ')
if len(s) < 3:
# raise引发一个你定义的异常
raise ShortInputException(len(s), 3)
except ShortInputException as result:#x这个变量被绑定到了错误的实例
print('ShortInputException: 输入的长度是 %d,长度至少应是 %d'% (result.length, result.atleast))
else:
print('没有异常发生.')
main()
也可以在捕获异常的处理中再次使用raise抛给系统
6.__init__文件和__all__语句的使用:
1.__init__.py文件有什么用
__init__.py 控制着包的导入行为
2._init__.py为空
仅仅是把这个包导入,不会导入包中的模块
3.__all__
在__init__.py文件中,定义一个__all__变量,它控制着 from 包名 import *时导入的模块
在__init__.py 中加入 __all__ 变量。该变量包含执行这样的语句时应该导入的模块的名字。它由一个模块名字符串列表组成.。
__all__=["test1","test2"]