Python基础三

本文目录:

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




















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

久亮哦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值