• 面向对象的约束,加密,异常处理,日志文件


    1,约束
    
    class  BaseMessage(object):
        def send(self,x1):
    
            raise NotImplementedError(".send() 必须被从新写入.")
    
    class   Email(BaseMessage):
        def  send(self,x1):
    
    #必须继承BaseMessage,然后其中必须编写send方法.用于完成具体业务逻辑
    
            pass
    
    obj = Email()
    obj.send()
    
    
    #2抽象类和抽象方法.
    from abc import ABCMeta, abstractclassmethod
    
    class Base(metaclass=ABCMeta):#这是一个抽象类
        def __init__(self, name, age):
            self.name = name
            self.age = age
            print()
        def func(self):
            print("In prosperity our friends know us; in adversity we know our friends.")
    
        @abstractclassmethod#抽象方法
        def func2(cls):
            pass
    
    class  Fpp(Base):
    
        def func2(cls):
            print(666)
    
    obj = Fpp(1,2)
    obj.func()
    3.如何自定义异常
    
    class MyException(Exception):
        def __init__(self, code, msg):
            self.code = code
            self.msg = msg
    try:
        raise MyException(100, "基本操作之-操作异常")
    
    except KeyError as obj:
        print(obj, 1111)
    except MyException as obj:
        print(obj, 2222)
    except Exception as obj:
        print(obj, 3333)
    #(100, '基本操作之-操作异常') 2222
    
    3.加密
    import  hashlib
    
    Salt = b"12313213asdf"
    
    def md5(pwd):
        #实例化对象
        obj = hashlib.md5(Salt)
        #写入要加密的字节 必须进行编码获得字节,文字不行
    
        obj.update(pwd.encode("utf-8"))
        #获取密文7883ad16b4e4565434d6fce3f62c951e
        return obj.hexdigest()
    print(md5("find"))
    
    user = input("请输入用户名:")
    pwd = input("请输入密码:")
    if user == "oldboys" and md5(pwd) == "7883ad16b4e4565434d6fce3f62c951e":
        print("login success")
    else:
        print("fail")
    #请输入用户名:oldboys
    #请输入密码:find
    # success
    
    import  logging
    logger = logging.basicConfig(filename='xxxxxxx.txt',
                                 format='%(asctime)s - %(name)s - %(levelname)s -%(module)s:  %(message)s',
                                 datefmt='%Y-%m-%d %H:%M:%S',
                                 level=30)
    
    # logging.debug('x1') # 10
    # logging.info('x2')  # 20
    # logging.warning('x3') # 30
    # logging.error('x4')    # 40
    # logging.critical('x5') # 50
    # logging.log(10,'x6')
    
    
    import traceback
    
    def func():
        try:
            a = a +1
        except Exception as e:
            # 获取当前错误的堆栈信息
            msg = traceback.format_exc()
            logging.error(msg)
    func()
  • 相关阅读:
    Lucene简介
    网页去重和网页反作弊
    一个不应该犯的错octave
    使用有道笔记
    向量操作的思想
    暗时间(介绍)-关于坚持的一个故事
    bootstrap插件学习-bootstrap.tab.js(读码)
    Bootstrap 实现CRUD示例及代码
    Bootstrap Table 使用示例及代码
    Bootstrap Table相关参数及属性、方法
  • 原文地址:https://www.cnblogs.com/zzy7372/p/9566769.html
Copyright © 2020-2023  润新知