Python面向对象(约束,异常处理,md5加密)(五)

1. 类的约束

1. 写一个父类. 父类中的某个方法要抛出一个异常 NotImplementedError

class Base:
    def login(self):
        raise NotImplementedError("没有实现登录")

class Person(Base):
    def login(self):
        print("正常使用")

class SpecialPerson(Base):
    def denglu(self):
        print("非正常")

def func(obj):
    obj.login()

p1 = Person()
p2 = SpecialPerson()
func(p1)
func(p2)

2. 抽象类和抽象方法

from abc import ABCMeta, abstractmethod

class Base(metaclass = ABCMeta):

@abstractmethod

def fangfa(self):

pass

from abc import ABCMeta,abstractmethod
class Animal(metaclass = ABCMeta):
    @abstractmethod
    def chi(self):pass
    def run(self):
        print("能跑")

class Cat(Animal):
    def chi(self):
        print("吃鱼")
    def dong(self):
        print("guyong")

c = Cat()
c.chi()
c.dong()
c.run()

2. 异常处理.

 try except raise finally

try:

代码

except 异常类:

除了错, 如何处理异常

except 异常类:

除了错, 如何处理异常

except 异常类:

除了错, 如何处理异常

else:

当程序不出错

finally:

不管出不出错, 都要执行

raise 异常类("信息")

如何自己定义异常

class 类(Exception):

pass

堆栈

import traceback

traceback.format_exc()

import traceback
class GenderException(Exception):
    pass

class Person:
    def __init__(self,name,gender):
        self.name = name
        self.gender = gender

    def xizao(self):
        print(f"{self.name}在洗澡")

def zaotang(ren):
    if ren.gender == "男":
        ren.xizao()
    else:
        raise GenderException("性别不对,去对门看看")

try:
    p1 = Person("tom","男")
    p2 = Person("jerry","mouse")
    zaotang(p1)
    zaotang(p2)
except GenderException:
    ret = traceback.format_exc()
    print(ret)

3. MD5加密

import hashlib

obj = hashlib.md5(b‘盐‘)

obj.update(b"要加密的内容")

print(obj.hexdigest())

import hashlib
def my_md5(c):
    obj = hashlib.md5(b"safgd")
    obj.update(c.encode("utf-8"))
    return obj.hexdigest()

print(my_md5("1996"))

4. 日志处理 

等级:

critical: 50

error:40

warning:30

info:20

debug:10

import logging

logging.basicConfig(filename=‘x1.txt‘, # 把日志信息写入的文件名
                    format=‘%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s‘,
                    datefmt=‘%Y-%m-%d %H:%M:%S‘, # 时间的格式
                    level=20) # 当前配置表示 10以上的分数会被写入日件

logging.critical("高")
logging.error("很高")
logging.warning("一般")
logging.info("较低")
logging.debug("最低")
logging.log(500,"自己定")

file_handler = logging.FileHandler(‘l1.log‘, ‘a‘, encoding=‘utf-8‘) # 创建文件
file_handler.setFormatter(logging.Formatter(
    fmt="%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s")) # 设置日志文件的格式
logger1 = logging.Logger(‘腾讯qq‘, level=40) # 创建一个日志文件处理对象
logger1.addHandler(file_handler) # 把文件添加到日志

logger1.error("运行出错了")

file_handler2 = logging.FileHandler(‘l2.log‘, ‘a‘, encoding=‘utf-8‘)
file_handler2.setFormatter(logging.Formatter(
    fmt="%(asctime)s - %(name)s -%(levelname)s -%(module)s: %(message)s"))
logger2 = logging.Logger(‘百度贴吧‘, level=logging.DEBUG)
logger2.addHandler(file_handler2)

logger2.debug("有点小问题")

原文地址:https://www.cnblogs.com/fu-1111/p/10158722.html

时间: 2024-08-29 19:58:44

Python面向对象(约束,异常处理,md5加密)(五)的相关文章

Python基础20_类的约束,异常处理,MD5加密,日志

一. 类的约束 约束程序的结构, 在分配任务之前就应该把功能定义好, 然后分别交给底下的程序员来完成相应的功能 在python中有两种办法来解决这样的问题 1. 提取父类, 然后在父类中定义好方法, 在方法中抛出一个异常, 这样所有继承父类的子类都必须重写这个方法, 否则访问的时候就会报错 class Base: def login(self): raise NotImplementedError   # 没有被实现错误, 要求子类必须重写login方法 , 不然抛出异常 class User(

python面向对象07/异常处理

目录 python面向对象07/异常处理 1.异常错误分类 2.什么是异常? 3.异常处理 4.为什么要有异常处理? 5.异常处理的两种方式 5.1 if判断 5.2 try python面向对象07/异常处理 1.异常错误分类 语法错误: # if 2 > 1 # print(222) # # dic = {'name'; 'alex'} # tu = (2, 3, 4'' 6 ) 逻辑错误: # num = int(input('请输入数字')) # dic = {'name': '海狗',

异常处理,约束,MD5加密,日志处理

1,异常处理 一般的异常处理说的是抛异常和处理异常 异常处理从产生异常开始语法: 抛异常:产生异常raise Exception("") 处理异常语法: 处理异常try: 操作except Exception as e: 异常父类,可以捕获所有异常else: 保护不抛出异常的代码,当try中午异常的时候执行finall: 最后总要执行我 自定义异常类,只需要继承Exception语法: 自定义异常class Gandererror(Exception): pass 处理异常用法: 1

python之路---20 约束 异常处理 MD5 日志

三十九, 一.类的约束 1.抛出异常    NotImplementedError 2.抽象方法 含有抽象方法的类是抽象类 抽象类中的方法全是抽象方法的是接口 抽象类不能创建对象 二.异常处理 处理完后代码可继续运行 所有异常的根是Exception 1.基本语法 2.自定义异常    (继承Exception异常的根) 自定义异常  加 异常处理 3.堆栈信息(显示错误信息的具体位置) 需引入模块 三.MD5加密   不可逆 固定格式: 应用: 四.日志 1. 2.?个?项?, 有两个?系统,

20 约束 异常处理 MD5 日志

三十九, 一.类的约束 1.抛出异常    NotImplementedError 2.抽象方法 含有抽象方法的类是抽象类 抽象类中的方法全是抽象方法的是接口 抽象类不能创建对象 二.异常处理 处理完后代码可继续运行 所有异常的根是Exception 1.基本语法 2.自定义异常    (继承Exception异常的根) 自定义异常  加 异常处理 3.堆栈信息(显示错误信息的具体位置) 需引入模块 三.MD5加密   不可逆 固定格式: 应用: 四.日志 1. 2.?个?项?, 有两个?系统,

python 面向对象(五)约束 异常处理 MD5 日志处理

###############################总结###################### 1.异常处理 raise:抛出异常 try: 可能出现错误代码 execpt 异常类 as e: 异常处理 execpt 异常类 as e: 异常处理 else: 如果上面的代码没有报错,执行这里 finally: 收尾 自定义异常: 随便写个类. 继承Exception 2. 约束 父类和子类. 在父类中声明方法. 要求子类必须重写它 1. 抛出异常. raise NotImplem

python之路--类的约束, 异常处理, MD5, 日志处理

1. 类的约束 1. 写一个父类,父类中的某个方法要抛出一个异常 NotImplementedError class Base: # 对子类进行了约束. 必须重写该方法 # 以后上班了. 拿到公司代码之后. 发现了notImplementedError 继承他 直接重写他 def login(self): # 没有被实现错误 raise NotImplementedError("你要重写一下login这个方法. 否则报错!") # 抛异常 . class Member(Base): d

python--类的约束, 异常处理, MD5, 日志处理

一 . 类的约束 1. 写一个父类,父类中的某个方法要抛出一个异常 NotImplementedError class Base: # 对子类进行了约束. 必须重写该方法 # 以后上班了. 拿到公司代码之后. 发现了notImplementedError 继承他 直接重写他 def login(self): # 没有被实现错误 raise NotImplementedError("你要重写一下login这个方法. 否则报错!") # 抛异常 . class Member(Base):

Python面向对象之异常处理

1:什么是异常 异常就是在我们的程序在运行过程中由于某种错误而引发Python抛出的错误: 异常就是程序运行时发生错误的信号(在程序出现错误时,则会产生一个异常,若程序没有处理它,则会抛出该异常,程序的运行也随之终止),在         python中,错误触发的异常如下 2:常用异常 python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误.你可以使用该功能来调试python程序. python标准异常 异常名称 描述 BaseException 所有异常的基类 S