![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python 知识点
描述的是python相关知识
如厮__
少说不可能。
展开
-
python assert关键字的第二个参数
描述不知道应不应该说第二个参数,但是可以知道的是这种用法在平常开发中很少用的(甚至说除了在写测试的时候基本上不会用)抛出的异常的补充信息哈。演示如下:a = 0assert a == 1, 'a 为 0'input:Traceback (most recent call last): File "F:/python_file/cookbook/me/demo.py", line 2, in <module> assert a == 1, 'a 为 0'Asser原创 2020-07-30 21:23:23 · 545 阅读 · 0 评论 -
避免程序中因为文件io操作造成的效率问题
描述这个问题的出现是在我一个同事在django项目中的某一个接口一直读取yaml文件导致效率极其的慢,而出现的小bug。问题解决其实这个问题很好解决的,对于一个打开操作,只需要在程序中进行一次就可以了。那么如何只进行一次?就可以提供一个文件级别的私有函数打开这个文件,定义一个全局变量调用这个函数即可。如果本身需要对这个文件的内容提供操作接口的话,那么再定义一个函数深拷贝这个内容的内容进行操作就好了。为什么这样可行呢?因为在一个程序在运行过程中,所有模块级的变量都会被保存在内存中,不会被释放原创 2020-07-30 21:16:59 · 437 阅读 · 0 评论 -
python:销毁一个对象__del__()和with语句选择哪个
前言当然选择后者啊,这还用说的?好吧,还是说说吧正文有那么一段时间,我习惯于用_ init_()方法来初始化连接,打开,准备等操作;使用__del__()方法做销毁操作。我是一直知道其弊端的:不就是循环引用和实例多引用致使无法正常销毁实例嘛!简单的使用这种方式,一般情况是遇不到什么问题的,但当业务变得越来越复杂的时候,就会发现会出现莫名奇妙的问题,比如:1、某个操作会卡死在_ d...原创 2020-05-07 22:53:55 · 377 阅读 · 0 评论 -
python:极可能不知道的and和or巧用
前言and和or一般用于判断语句,但是也有其它用法。有时候你会看到,或者经常使用到这样的用法: return value or xx或者a = value or xx但是下面的用法你遇到过几次?正文codeIn [4]: 'a'and'b'or'c'Out[4]: 'b'In [5]: ''and'b'or'c'Out[5]: 'c'In [6]: 'a'and'b...原创 2020-05-07 22:27:59 · 174 阅读 · 0 评论 -
python:__new__()和 类名()创建的实例对象的细微差别
前言一般来说,我们创建一个实例对象的时候是使用 类名() 的方式,但实际上 _ new _()也是可以的,当然它们有着细微的区别。正文code:class Test: def __init__(self): self.test="test"if __name__ == '__main__': t1 = Test() print(vars...原创 2020-05-07 22:17:05 · 353 阅读 · 0 评论 -
python : 列表推导式中的 if else 的连用
前言之前,我一直认为在python的列表推导式及各种推导式中是只可以有if,不能有else的。直到我看到了 cookbook 这本书中有关于这一点的写法。我又get到一个小技能。顺便说一下:这本书真的很不错。代码之前,我以为只有三元运算符可以这样使用。 tmp = 1 if True else 0但是实际上:In [1]: a=[1,2,3,4,]In [2...原创 2020-04-17 21:34:55 · 931 阅读 · 0 评论 -
浅析:关于go与python中的回调函数和闭包的一点小总结
前言浅析,仅个人理解,个人总结。不讨论标准的函数式编程,如果有需要自行科普。存在借鉴。先说闭包广义上:闭包具备以下两个特点:1、可以读取函数内部的变量。2、 让这些变量的值始终保持在内存中。关于这两点我就一次性都表现出来了。在go中:闭包不仅可以读函数内部的变量,还可以直接修改。package mainimport "fmt"func test() f...原创 2020-02-09 18:12:16 · 161 阅读 · 0 评论 -
python:聊一聊 ==和魔法方法__eq__之间的关系
摘要 环境:python3.65 有时候我们会发现,有些代码中进行判等(==)操作的时候,返回的竟然不是True或者False,这是为什么呢? 实际上这是因为,该对象所对应的类,重载了__eq__方法的缘故。首先:看一下下面的代码片(ipython3):In [6]: 1==1 Out[6]: True In [7]: 1.__eq__(1) ...原创 2019-11-23 16:05:56 · 1065 阅读 · 0 评论 -
关于python的命名空间
前言:存在参考,侵删python会有局部命名空间、全局命名空间和内建命名空间同时存在。局部命名空间记录函数内部的变量、传入函数的参数、嵌套函数等被命名的对象;全局命名空间记录模块的变量、函数、类及其它导入的模块等被命名的对象;内建命名空间记录Python自身提供的函数、模块等被命名的对象。python在编译和解释执行Python代码的过程中,会为每个模块建立一个全局命名空间...原创 2019-11-20 16:55:13 · 170 阅读 · 0 评论 -
python3中编解码、进制、字节、bytes及爬虫中经常遇到的编码问题的总结
摘要内容可能有些繁杂,我尽量排版清晰,描述通俗易懂,不说为了别人,后期我自己也要看的。内容是我查阅诸多资料汇总的,如有不对之处,欢迎告知。侵删首先说一下:ASCII Unicode UTF-8:先说来历: ASCII 不支持中文及世界上很多的文字,所以Unicode出现了,但是Unicode有点浪费内存,所以UTF-8这种“弹性”存储的出现了。(有的文章说两位的ASC...原创 2019-11-12 16:45:24 · 801 阅读 · 0 评论 -
关于python中的import、from、循环引用等相关问题
摘要关于导包问题,很少有人去在意它,但是它一直都在哪,也许出现了,百度一下就解决了,但是始终不理解。知识不存在不求甚解,授人鱼不如渔。不要拿pycharm中是否有导包提示来考虑此类问题不讨论内置包及第三方包不讨论通过sys.path.insert()方法添加进去的包先说 from xx import yy 和import xx的区别:from:程序进行的修改不会影响到被导入的原...原创 2019-11-10 13:20:10 · 549 阅读 · 0 评论 -
当已经安装了Pillow时,仍然报错:because Pillow is not installed.
摘要如果想直接看到解决问题的关键点的话:请到总结部分。问题出现: 今天开始做一个django的项目,模型类中有使用ImageField这个字段,这个字段需要依赖一个包也就是:Pillow。我按照提示已经装了这个包了,可视仍然报错,错误类似是:ERRORS:users.UserProfile.image: (fields.E210) Cannot use ImageField bec...原创 2019-11-07 17:35:45 · 4841 阅读 · 4 评论 -
解决虚拟机静态ip的设置,VM与win10系统不兼容问题
摘要第一部分是我的吐槽,如果想直接看操作,请跳过第一部分。相关信息:win10移动工作站版本,VM15pro,乌班图16.04。也怪我一个虚拟机用几年,导致我虚拟机配置不熟练。吐槽 其实我不想吐槽的,但是我还是忍不住啊! 很久以前,我做了一个项...原创 2019-11-03 18:22:45 · 406 阅读 · 0 评论 -
python 关于可变类型作为默认参数时的注意点
摘要请先看代码,看看代码的输出是否和你想的一样。def e(v,l=[]): l.append(v) return ll1=e(10)l2=e(123,[])l3=e("a")print(l1,l2,l3)# 输出: ([10, 'a'], [123], [10, 'a'])关于上述代码,标准解释是:带有默认参数的表达式在函数被定义的时候被计算,不是在调用的时候计...原创 2019-11-01 13:04:50 · 894 阅读 · 0 评论 -
无意中发现python3和python2中关于global比较有趣的不同
摘要global 一般用于修改全局变量代码展示的是,在修改全局变量之前调用全局变量会怎样python3.65会报错,代码中断python2.7 会警告,不影响代码运行code# coding:utf-8a=Truedef func(): if a: print("123") `global` a a=Falseprint(a)func()prin...原创 2019-10-29 23:20:21 · 875 阅读 · 0 评论 -
python:关于拆包的小总结
摘要无好吧,仅记录code1:相当于循环出来后又对元祖进行了拆包。In [9]: for c,d in [(1,2),]: # 可去掉 , ...: print(c,d) ...: ...: ...: 1 2code2:普通遍历In [10]: for c,d in [(1,2),(3,4)]: ...: prin...原创 2019-10-29 14:40:39 · 158 阅读 · 0 评论 -
内存地址的小坑:切片和extend()方法的两个比较有趣的地方
摘要今天做leetcode算法题的时候,遇到了两个比较有意思的地方。特此记录。code1In [1]: a=[1,2,3]In [2]: id(a[:].extend([4]))Out[2]: 1892525200In [3]: id(None)Out[3]: 1892525200code2In [1]: a=[1,2,3,4,5,6,7]In [2]: id(a)O...原创 2019-10-25 21:54:50 · 279 阅读 · 0 评论 -
windows下关于pip,virtualenv,pycharm,anaconda的小总结
摘要仅表现出几个特别“有趣”的地方。干货当anaconda装好了之后,如果点击将其添加到环境变量时,默认环境会根据环境变量的先后顺序排序,此时默认环境会变为anaconda的自带环境。virtualenv创建的虚拟环境和anaconda创建的虚拟环境大大的不同,比如:pycharm的Terminal打开时,如果选择的环境是virtualenv创建的环境的话,会进入默认的虚拟环境,而a...原创 2019-10-24 23:59:11 · 306 阅读 · 0 评论 -
python中循环语句配合else使用的意义(while else、try else语句也可参考本文)
意义意义就是:在非正常情况下退出循环(break)的时候不会调用else里面的语句,会直接往后执行。从而确定了正常的时候该做什么事,不正常的时候又该做什么事。代码片1没有break的时候语句执行完执行else内容for i in range(10): if i == 5: print( 'found it! i = %d' % i) print(i)else...原创 2019-10-21 23:12:12 · 927 阅读 · 0 评论 -
python:关于异常,你需要知道什么。
摘要异常的完整语法主动抛出异常自定义异常小知识点拓展(穿插代码中或文本中)异常的完整语法try: # 提示用户输入一个整数 num = int(input("请输入一个整数:")) # 使用数字8除以这个整数并且输出 result = 8 / num print(result) # 当python 解释器抛出异常时,最后一行的错误信...原创 2019-10-20 14:41:08 · 154 阅读 · 0 评论 -
浅析:python多继承中三个重写父类方法的方式
前言该文大白话解释,如不专业,请多包涵。调用父类方法有三种方式:1、类名.方法(self)2、super().方法名3、super(类名,self).方法名ps:为什么要有self这个参数?仅供参考的理解是:将自己作为实参传递给这个继承的类中,才能执行对应方法的代码。多继承中的“类名.方法(self)”的方式在此文没有解释,但是在最后面的补充中有一段个人觉得非常容易理解的说明(还有...原创 2019-07-27 22:24:26 · 491 阅读 · 0 评论 -
python中添加log日志的三种输出方式的写法
摘要log日志一般使用是很方便的,一般使用第二种即可。详细理解建议仔细阅读第三种写法。log日志的主要作用有以下两点:1.错误排查与分析2.log日志分析,进行用户画像。代码1:在控制台输出log日志import logginglogging.basicConfig(level=logging.WARNING, format='%(a...原创 2019-08-28 16:47:30 · 15972 阅读 · 3 评论 -
浅析:python中的装饰器
简要装饰器的作用:在不改变代码本身添加功能。装饰器其实就是函数引用传递的过程。(具体参考代码片1理解)装饰器在没调用函数前就已经执行代码并装饰了。(具体参考代码片2理解)参数的传递要谨遵“怎样来就怎样回去”(具体参考代码片3理解)被装饰函数如果有返回值的话就需要return哦(具体参考代码片3理解)如果多个装饰器装饰一个函数,装饰是“由下向上”,代码执行是“由上到下”(具体参考代码片...原创 2019-08-28 17:26:53 · 202 阅读 · 0 评论 -
简单理解python中的元类
简要python中所有创建的类都是由元类(type)创建而来。class 创建一个类,和用type()创建没有区别。type(参数1(str), 参数2(tuple), 参数3(dict)),参数名意义:类名,父类,属性及方法名的引用。type()一般看来是判断数据类型的作用,但是传入参数数量不同所做的事情不同,这本身是一件很傻的行为,但是python中为了考虑兼容性问题,所以只能这样...原创 2019-08-28 17:45:10 · 137 阅读 · 0 评论 -
总结:Python中的各种推导式及相关知识点拓展
摘要代码存在参考,如有不适,侵删。所有知识的总结都放置一个代码片中。知识点涵盖:列表,字典,集合,生成器推导式。补充知识点有:生成器的简单理解、is和==的区别(我只是通俗的说明而已,需要参考较为专业的博客理解)。代码# 基本格式'''variable = [out_exp_res for out_exp in input_list if out_exp == 2]'''# ...原创 2019-08-31 22:51:43 · 171 阅读 · 0 评论 -
关于os.path.join()方法总结
摘要由于我用的是window下的环境,在有些项目上路径拼接总出问题,特在ipython下进行测试并记录。代码片import osos.path.join("sa","sa")Out[3]: 'sa\\sa'os.path.join("/sa/","sa/")Out[4]: '/sa/sa/'os.path.join("/sa/","sa")Out[5]: '/sa/sa'os...原创 2019-10-11 19:43:12 · 974 阅读 · 0 评论 -
python中常用的正则表达式及re模块函数的总结
摘要只有代码片,使用"todo"作为分割表示(需要粘贴到pycharm上便更好的查阅)关于函数部分,只说明有何作用,并未举例。仅为个人总结,通俗但是可能存在不妥之处文章本意:回顾知识,方便查阅。正文(代码)# todo 首先明白# ^ 表示从哪开始; ^在 [] 里面表示否定。# todo 匹配单个字符# \d 0~9# [1-8] 等于 [123...原创 2019-08-06 13:34:22 · 255 阅读 · 0 评论