随笔分类 -  Python基础

摘要:python的logging使用 run.py logger.py 阅读全文
posted @ 2020-03-02 16:09 KbMan 阅读(242) 评论(0) 推荐(0)
摘要:function annotation 写法: 使用冒号 加类型代表参数类型 默认值参数示例: 使用 加类型代表返回值类型 python解释器运行时并不会检查类型,类型不对也不会抛异常,仅仅是注解而已。示例: python 解析器并不会在意类型注解,严格来说这是不对的,Python 会把类型信息放在 阅读全文
posted @ 2019-12-25 11:44 KbMan 阅读(2340) 评论(0) 推荐(1)
摘要:什么是元类 所有的对象都是调用类(实例化)而得来的,调用类的过程叫做类的实例化。 如果一切皆对象,那么类也是一个对象!既然对象都是通过调用类得到的,那么,调用类A得到了一个对象类B,那么类A就是元类!牛逼! 元类type—— 实例化—— 类A—— 实例化—— 对象a 一个类有三大组成部分: 类名 c 阅读全文
posted @ 2019-08-02 17:41 KbMan 阅读(163) 评论(0) 推荐(0)
摘要:什么是反射? 反省、自省。 反射指的是一个对象具有检测、访问、修改自身属性的能力 反射本质上就是在使用四个内置函数,然后对属性进行增啥改查。 hasattr (object, '属性名'): 查看对象object中有没有’属性名‘这个属性。因为类也是一个对象,所以第一个参数也可以直接是类名。一切皆对 阅读全文
posted @ 2019-07-31 21:55 KbMan 阅读(338) 评论(0) 推荐(0)
摘要:操作文件对象时可以: 上述叫做上下文管理协议,即with语句。 想象一下,你有两个需要结对执行的相关操作,然后,还要在他们中间放置一段代码。比如打开一个文件,操作文件,然后关闭该文件。 打开文件和关闭文件就是一个结对的操作。 上下文管理器的常见用例:是资源的加锁与解锁,文件的打开与关闭。 上下文管理 阅读全文
posted @ 2019-07-29 23:14 KbMan 阅读(785) 评论(0) 推荐(0)
摘要:isinstance(obj, cls)、issubclass(sub, super) isinstance(obj, cls) ​ 检查对象obj是否是类cls的对象 issubclass(sub, super) 检查sub类是否是super类的子类 类中的魔法函数 __ str __ 和 __ 阅读全文
posted @ 2019-07-29 22:10 KbMan 阅读(148) 评论(0) 推荐(0)
摘要:多态 什么是多态? 一种事物/一个类的多种形态。 例如:动物有多种形态:人、猪、狗;文件有多种形态:执行文件、文本文件;水有多种形态:液态水、固态水、水蒸气 多态性:多个不同类对象响应同一个方法,返回不同的结果 多态性的好处? 1、增加了程序的灵活性:以不变应万变,不论对象千变万化,使用者都是同一种 阅读全文
posted @ 2019-07-29 17:13 KbMan 阅读(321) 评论(0) 推荐(0)
摘要:1、range、xrange,dict.keys(), dict.values(), dict.items(),高阶函数map,filter,zip python2中的这些东西都是直接返回一个列表 python3中都是返回一个可迭代对象,只有你要用值的时候,才会给你,节省内存 3、编码 python 阅读全文
posted @ 2019-07-25 23:47 KbMan 阅读(194) 评论(0) 推荐(0)
摘要:灵魂三问 什么是继承? 继承是一种创建新的类的方式,新创建的叫子类,继承的叫父类、超类、基类。 特点:子类可以使用父类的属性(特征、技能) 继承是类与类之间的关系 为什么要继承? 减少代码冗余、提高重用性 如何用继承? 单继承 多继承 使用__bases__方法可以获取子类继承的类 新式类、经典类 阅读全文
posted @ 2019-07-25 22:40 KbMan 阅读(34171) 评论(0) 推荐(1)
摘要:理解面向对象编程(OOP: Object Oriented Programming) 面向过程与面向对象 什么是面向过程编程? 答:按照先干什么、再干什么、最后干什么的思路。事情都自己干,流水线,程序员是打工仔视角 ​ 优点:使复杂的问题简单化、流程化 ​ 缺点:可扩展性差 什么是面向对象编程? 答 阅读全文
posted @ 2019-07-24 22:48 KbMan 阅读(392) 评论(0) 推荐(0)
摘要:hashlib与openpyxl模块 hashlib hashlib加密后是无法解密的,市面上流传的解密网站,只是穷举各种字符的匹配,然后加密 1. 基操(重要) 2. 内容分多次 一个内容可以分多次update,得出的结果是相同的 3. 加盐处理: 有时候为了让别人无法找出真正的内容,可以进行加盐 阅读全文
posted @ 2019-07-20 22:08 KbMan 阅读(329) 评论(0) 推荐(0)
摘要:logging模块 导入模块:import logging 日志模块有五个级别: debug 级别为10 info 级别为20 warning 级别为30 error 级别为40 critical 级别为50 使用日志有两种形式,一种是将日志保存到日志文件,一种是将日志打印到终端。 日志默认是war 阅读全文
posted @ 2019-07-20 15:14 KbMan 阅读(194) 评论(0) 推荐(0)
摘要:常用模块介绍 collections模块 namedtuple:具名元组 介绍:生成可以使用名字来访问的元组。 例子1:扑克牌 例子2:用具名元组namedtuple,用坐标和半径表示一个圆。 deque 双端队列 介绍双端队列前,先介绍一下队列:queue 队列,先进先出 FIRST IN FIR 阅读全文
posted @ 2019-07-18 20:48 KbMan 阅读(282) 评论(0) 推荐(1)
摘要:正则表达式 啥叫正则表达式?一种匹配字符串内容的规则。 ()、[] 、{}的区别: ()是多个匹配,把括号内的当做一组处理。(ab)表示字符串有ab这样的字符才能匹配。匹配字符串,常跟 |(或) 搭配使用。 []是单个匹配,[abc]表示单个字符如果是a,b,c的一种,则匹配成功。特殊字符在[]内, 阅读全文
posted @ 2019-07-17 21:49 KbMan 阅读(201) 评论(0) 推荐(0)
摘要:def func(): return [lambda x: x*i for i in range(5)] def foo(): return [m(2) for m in func()] res = foo() print(res) >>> [8, 8, 8, 8] 阅读全文
posted @ 2019-07-15 22:44 KbMan 阅读(180) 评论(0) 推荐(0)
摘要:可迭代对象和迭代器 可迭代对象:内置方法有__iter__方法的 像基本数据类型:list, dict, tuple, str都是可迭代对象。但同时,他们没有__next__,所以不能叫做迭代器。 迭代器:内置方法有__iter__和__next__的 因为迭代器都有__iter__,所以,迭代器都 阅读全文
posted @ 2019-07-15 18:39 KbMan 阅读(165) 评论(0) 推荐(1)
摘要:匿名函数 匿名函数的特点:临时存在,用完就没了 匿名函数的应用:一般与内置函数一起连用。 内置函数 filter: 理解重点: 返回值为: (item for item in iterable if function(item)) map: map(function, iterable, ...) 阅读全文
posted @ 2019-07-14 01:10 KbMan 阅读(266) 评论(0) 推荐(0)
摘要:小小print,大大content print是Python的内置方法之一,也是我们最常用的打印、调试的方式。我们来看看builtins.py中print的源码: *args: 这个参数决定了print能同时打印多个值。 sep: 这个参数决定了当print打印多个值时,值中间的连接字符。他的默认值 阅读全文
posted @ 2019-07-13 12:22 KbMan 阅读(308) 评论(0) 推荐(1)
摘要:装饰器介绍 啥是装饰器呀? 答:给函数对象增加新功能的一个工具。装饰器的内部函数其实就是一个闭包函数。 装饰器有啥原则呀? 答:利用装饰器增加新功能时,不修改被装饰对象的源代码,不改变被装饰对象的调用方式。 简单装饰器示例 装饰器语法糖:为了直观,python 为了省略 func = count_t 阅读全文
posted @ 2019-07-12 00:40 KbMan 阅读(249) 评论(0) 推荐(0)
摘要:闭包函数的介绍 闭包函数:内部函数包含对外部作用域而非全局作用域名字的引用,并且一般外部函数的返回值为内部函数,这个内部函数叫做闭包函数。 闭:内部函数 包:内部函数引用了外部函数作用域的名称 闭包函数示例: 下面这个就不是闭包函数: 函数.__closure__的返回值是一个cell对象组成的元组 阅读全文
posted @ 2019-07-11 23:50 KbMan 阅读(234) 评论(0) 推荐(0)