Python基础三

来源:互联网 发布:席德梅尔 知乎 编辑:程序博客网 时间:2024/05/19 22:56

本文目录:

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 = atleastdef 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"]




















原创粉丝点击