zoukankan      html  css  js  c++  java
  • day29

    # 面对对象三大特性
        #继承
            #单继承
            #多继承
        #多态:python天生支持,鸭子类型(list和tuple)
        #封装:私有的(__变量)
        # @property
        # @classmethod
        # @staticmethod
    # 面对对象进阶
        #issubclass isinstance
        #反射 hasattr getattr
        #内置方法:
            #__new__创建self构造方法
            #__call__ 对象()
    # 创建一个配置文档
    # import configparser
    #
    # config = configparser.ConfigParser()
    #
    # config["DEFAULT"] = {'ServerAliveInterval': '45',
    #                       'Compression': 'yes',
    #                      'CompressionLevel': '9',
    #                      'ForwardX11':'yes'
    #                      }
    #
    # config['bitbucket.org'] = {'User':'hg'}
    #
    # config['topsecret.server.com'] = {'Host Port':'50022','ForwardX11':'no'}
    #
    # with open('example.ini', 'w') as configfile:
    #
    #    config.write(configfile)
    
    # import configparser
    # # config = configparser.ConfigParser()
    # # #---------------------------查找文件内容,基于字典的形式
    # # print(config.sections())        #  []
    # # config.read('example.ini')
    # # print(config.sections())        #   ['bitbucket.org', 'topsecret.server.com']
    # # print('bytebong.com' in config) # False
    # # print('bitbucket.org' in config) # True
    # # print(config['bitbucket.org']["user"])  # hg
    # # print(config['DEFAULT']['Compression']) #yes
    # # print(config['topsecret.server.com']['ForwardX11'])  #no
    # # print(config['bitbucket.org'])          #<Section: bitbucket.org>
    # # for key in config['bitbucket.org']:     # 注意,有default会默认default的键
    # #     print(key)
    # # print(config.options('bitbucket.org'))  # 同for循环,找到'bitbucket.org'下所有键
    # # print(config.items('bitbucket.org'))    #找到'bitbucket.org'下所有键值对
    # # print(config.get('bitbucket.org','compression')) # yes       get方法Section下的key对应的value
    # import configparser #增删改
    # config = configparser.ConfigParser()
    # config.read('example.ini')
    # config.add_section('yuan')
    # config.remove_section('bitbucket.org')
    # config.remove_option('topsecret.server.com',"forwardx11")
    # config.set('topsecret.server.com','k1','11111')
    # config.set('yuan','k2','22222')
    # config.write(open('new2.ini', "w"))
    
    # logging模块
    import logging
    # logging.debug('debug message')
    # logging.info('info message')
    # logging.warning('warning message')
    # logging.error('error message')
    # logging.critical('critical message')
    
    # import logging
    #
    # logging.basicConfig(level=logging.DEBUG,
    #                     format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',
    #                     datefmt='%a, %d %b %Y %H:%M:%S',
    #                     filename='test.log',
    #                     filemode='w')
    #
    # logging.debug('debug message')
    # logging.info('info message')
    # logging.warning('warning message')
    # logging.error('error message')
    # logging.critical('critical message')
    
    import logging
    
    logger = logging.getLogger()
    # 创建一个handler,用于写入日志文件
    fh = logging.FileHandler('test.log',encoding='utf-8')
    
    # 再创建一个handler,用于输出到控制台
    ch = logging.StreamHandler()
    formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
    
    fh.setLevel(logging.DEBUG)
    
    fh.setFormatter(formatter)
    ch.setFormatter(formatter)
    logger.addHandler(fh) #logger对象可以添加多个fh和ch对象
    logger.addHandler(ch)
    
    logger.debug('logger debug message')
    logger.info('logger info message')
    logger.warning('logger warning message')
    logger.error('logger error message')
    logger.critical('logger critical message')
  • 相关阅读:
    Yii 动作过滤的方法
    artdialog
    第一天:安装nodejs
    yii模块下面的组件
    总是容易忘记 jquery ajax POST
    【来自简书】浏览器~加载,解析,渲染
    【收藏】九个PHP很有用的功能
    从理论到实践,全方位认识DNS(实践篇)
    从理论到实践,全方位认识DNS(理论篇)
    DNS解析过程原理
  • 原文地址:https://www.cnblogs.com/wujunjie-sir/p/9285532.html
Copyright © 2011-2022 走看看