Python
钢筋工
这个作者很懒,什么都没留下…
展开
-
Python 单例模式
文章目录1. 单例是啥玩意?2. 实现单例2.1. 修改__new__方法(最常用)1. 单例是啥玩意?单例模式(Singleton Pattern), 也叫单态模式, 是一种常见的软件设计模式作用: 保证某一个类只有一个实例存在, 多次创建对象, 同时指向一个对象2. 实现单例2.1. 修改__new__方法(最常用)都知道__new__方法和__init__方法合在一起称为构造方法而__new__方法的作用就是创建对象, __init__方法用来做初始化那么修改__new__方法,原创 2020-07-14 17:36:16 · 220 阅读 · 0 评论 -
解决pycharm 中文报错问题
文章目录1. 错误展示2. 解决办法1. 错误展示这个错误就很奇怪, 有时可以执行而有时又会报错, 即使是重启Pycharm也无法解决s = '中文'print(s)错误信息:File "F:/PyCharmProjects/Demo/demo.py", line 27SyntaxError: Non-UTF-8 code starting with '\xc8' in file F:/PyCharmProjects/Demo/demo.py on line 27, but no enco原创 2020-07-14 14:07:51 · 4711 阅读 · 0 评论 -
Python 注释小结
文章目录1. 注释是啥:2. Python中的注释2.1 单行注释2.2. 多行注释?为什么在标题上要加问号多行注释的意义何在1. 注释是啥:注释是对代码的解释和说明, 目的是为了阅读者更容易理解代码的逻辑2. Python中的注释2.1 单行注释单行注释是最传统的注释, 也是各语言都具备的功能在Python中的单行注释使用’#'开头, 后面跟代码的解释或说明# 这是一行注释!!关键点: 单行注释不会被执行2.2. 多行注释?为什么在标题上要加问号普遍认为三个引号对括起来的可换行的字原创 2020-07-14 11:10:43 · 444 阅读 · 0 评论 -
Python bisect模块的使用与源码分析
文章目录1. 模块简介2. 源码分析及使用2.1. 方法概述2.2. 使用2.3. 源码分析本文基于Python3.7分析1. 模块简介bisect模块属于Python内置模块内部核心算法是二分法用于操作的列表必须是升序的(空列表也可以)功能: 在保证原有顺序的情况下, 插入一个元素(或返回元素如果插入的下标值),不影响原有顺序2. 源码分析及使用2.1. 方法概述bisect提供了六个方法:查找: 返回元素按照顺序应该插入的位置, 但不会修改原列表方法解释原创 2020-07-11 14:48:13 · 520 阅读 · 0 评论 -
Python 单链表逆序(反转)
文章目录1. 链表节点类2. 创建链表(附赠)3. 反转1_头插4. 反转21. 链表节点类class LinkListNode(object): def __init__(self, val, next=None): self.val = val self.next = next2. 创建链表(附赠)def CreateLinkList(l): """ l: list, 节点值列表 """ head = LinkListNode(0) h = head for i in原创 2020-07-10 21:28:24 · 671 阅读 · 0 评论 -
Python Pymysql模块基本使用
文章目录1. 安装2. 流程图示:3. 导入与连接4. 游标对象4.1. 查询4.2. 添加、修改、删除4.3. 关闭对象5. 防止SQL注入1. 安装使用pip工具安装window下: cmd -> pip install pymysqllinux下: Terminal -> sudo pip3 install pymysql2. 流程图示:导入模块连接对象游标对象查询获取数据增, 删, 改提交3. 导入与连接import pymysql# 创建Mysql数据库连接co原创 2020-07-08 19:21:07 · 432 阅读 · 0 评论 -
Python 线程安全
文章目录1. 什么是线程安全2. Python中的线程安全1. 什么是线程安全如果多个线程访问对象时, 不考虑任何关于线程的调度和交替执行, 主线程也不需要额外添加同步, 或者进行其它协调操作时, 线程执行的结果都是正确的, 那么这个对象即为线程安全2. Python中的线程安全...原创 2020-07-08 09:20:07 · 729 阅读 · 0 评论 -
Pyhton =、浅拷贝以及深拷贝
文章目录1. =操作2. 浅拷贝3. 深拷贝三种操作不同只体现在不可变类型的修改上1. =操作两指针指向同一块内存地址, 一个改变都会改变l1 = [1, 2, 3]l2 = l1print(l1, l2)# [1, 2, 3] [1, 2, 3]l2[0] = 4print(l1, l2)# [4, 2, 3] [4, 2, 3]l2.append(4)print(l1, l2)# [1, 2, 3, 4] [1, 2, 3, 4]2. 浅拷贝使用内置模块 copy.原创 2020-07-07 19:17:57 · 116 阅读 · 0 评论 -
Python ==(!=) 和is(is not)的区别
文章目录1. ==(!=)2. is(is not)1. ==(!=)判断两个对象的值是否相等, 不考虑内存地址问题s1 = 'abc's2 = 'abc's3 = 'abd's4 = s1 + s2s5 = s1 + s2print('---地址相同, 值相同---')print(id(s1), id(s2))print(s1 == s2) # Trueprint('---地址不同, 值不同---')print(id(s1), id(s2))print(s1 == s3) #原创 2020-07-07 18:12:57 · 735 阅读 · 0 评论 -
Python 多线程为何要加锁
文章目录1. 全局解释器锁(GIL)2. 为何多线程访问内存要加锁1. 全局解释器锁(GIL)CPython解释器在内存管理上不是线程安全的, 所以创建出了一个GIL锁机制, 阻止多线程并行GIL锁只存在于CPython中, 对于JPython等就没有这个概念, 但由于JPython用的人比较少, 所以支持的模块也比较少, 最常用的还是CPython2. 为何多线程访问内存要加锁由于存在GIL锁, 所以多线程应该是串行的, 但是为什么访问内存还需要加锁呢?CPython解释器为了模拟并发执原创 2020-07-07 17:26:16 · 1358 阅读 · 0 评论 -
Python基础框架总结
123原创 2019-10-17 19:05:44 · 284 阅读 · 0 评论