python自定义全局异常_python异常处理、模块、私有化

11576306-a8402191f0aec4c2.png

异常处理

一、系统异常

1.捕捉异常

结构是:

try:

可能引起异常的代码

except:

对异常的处理代码

try:

print(name)

except: #所有异常

print ('error')

2.捕获多个异常

try:

print(name)

except (IOError, NameError):

print ('error')

3.异常描述信息

try:

print(name)

except NameError as ret:

print ('error : %s', ret)

4.捕获所有异常

try:

print(name)

except Exception as ret: #all exception error

print ('error : %s', ret)

5.try…finally…

try:

print(name)

except Exception as ret:

print ('error : %s'% ret)

else:

print ('没有任何异常')

finally:

print ('无乱是否有异常,最后都要执行这里')

二、抛出自定义的异常

# python 2.X -raw_input python 3.X -input

# coding=utf-8

class MyError(Exception):

'''self error'''

def __init__(self, length, least):

self.length = length

self.least = least

def main():

s = raw_input('please input your name :')

try:

if len(s) < 3:

raise MyError(len(s), 3)

except MyError as rest:

print ('input len = %s, min order %d' % (rest.length, rest.least))

else:

print ('no error')

模块

1、Python中的模块

import os

print (os.__file__)

2、import

import math

#这样会报错

print sqrt(2)

#这样才能正确输出结果

print math.sqrt(2)

有时候我们只需要用到模块中的某个函数,只需要引入该函数即可,此时可以用下面方法实现:

from 模块名 import 函数名1, 函数名2

不仅可以引入函数,还可以引入一些全局变量、类等

3、from … import *

import a as t

pass

私有化

xx: 公有变量

_x: 单前置下划线,私有化属性或方法,from somemodule import *禁止导入,类对象和子类可以访问

_xx:双前置下划线,避免与子类中的属性命名冲突,无法在外部直接访问(名字重整所以访问不到)

xx:双前后下划线,用户名字空间的魔法对象或属性。例如:init , __ 不要自己发明这样的名字

xx:单后置下划线,用于避免与Python关键词的冲突

通过name mangling(名字重整(目的就是以防子类意外重写基类的方法或者属性)如:_Class__object)机制就可以访问private了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值