写在前面

长期更新的博文。多数是一些比较隐蔽的问题。欢迎留言补充。

pip并不是那么安逸

pip安装对于开发者来说确实是一种解放。可以自动安装依赖包,但执行最简单的pip安装命令时,并不是所有的依赖都会安装。有一些是模块可选择的,比如gunicorn在选择异步框架时。有一些因为调用的层次较多,忽视了,最后pip还是会提醒缺少一些依赖。留心每次安装的结尾。

import时名称相同/相似(但实际模块不同)

近几年出现了较多次针对python供应链的黑客攻击之后,python官方对模块进行了规范,其中包括在pypi中搜索模块时,模块主页上都会有一个安装命令,明确告知安装它的时候该使用什么。

有些是因为升级。比如使用beautifulsoup,虽然名字是叫beautifulsoup,但是它目前对应的模块叫做beautifulsuop4。

还有库存在重名冲突导致产生问题。假如通过阅读import的内容去安装一个模块,之后运行会提示模块中没有代码中的函数或者变量。查看模块源代码确实没有,但是运行的代码同样也不会错,陷入怀疑人生。典型的就是加密库中的cipher,一个是cipher,另一个叫pycipher。但是导入的是同一个名字:cipher。

错误地import了自定义的模块

在新建py文件的时候,可能是因为自己的脑海中反复考虑想着代码功能,然后就以代表程序功能的单词来命名为文件了。import导入的时候,是会引入同目录下的文件的,如果import的名字原本是要调用某个模块的,但是自己编写的函数又起了同样了名字,解释器就会把当前目录下自己写的这个函数编译导入进来。

非常明显的特征:文件夹下出现了一个和.py同名的.pyc文件。

尝试修改字符串

可能是先学了c、java等语言,然后余孽未消,将它们对数组的定义和思维带入到了python中来。python字符串不支持直接修改,修改字符串的某一位或者某几位,需要靠拼接的方法。也是涉及重建一个字符串对象。

is和==不相同

比较值的时候使用==,比较地址的时候使用is。

判定为空列表的时候可以是使用A == [],但是如果使用A is [],即便先前赋值A = [],返回的结果也是False

字符串拼接的时候使用+

由于python字符串不可变,每次使用+进行拼接,产生的结果都要在内存中新建一个对象来放置这个新生成的字符串,所以大量拼接操作的性能低下。可以使用内置的join()方法来替代+进行字符串拼接。

python开发中容易犯的错误整合的更多相关文章

  1. javascript中易犯的错误有哪些

    javascript中易犯的错误有哪些 一.总结 一句话总结: 比如循环中函数的使用 函数中this的指向谁(函数中this的使用) 变量的作用域 1.this.timer = setTimeout( ...

  2. Python开发最常犯错误总结10种

    不管是在学习还是工作过程中,人都会犯错.虽然Python的语法简单.灵活,但也一样存在一些不小的坑,一不小心,初学者和资深Python程序员都有可能会栽跟头.本文是Toptal网站的程序员梳理的10大 ...

  3. android开发中常犯的几个错误整理

    新手程序猿,在开发中难免会犯各种各样的错误,以下是整理的一些android开发中常见的错误,一起来看看吧. 1.避免将多个类放在一个文件夹里面,除非是一次性使用的内部类. 就是一个文件,最好给分它同名 ...

  4. Python 字典一个易犯的错误

    一个易犯的错误,关于 Python 的传值(对于不可变量) 和 传引用(对于可变量),浅拷贝和深拷贝.废话不多说,看例子, 直接改变可变字典值,失败, >>> dic = dict. ...

  5. Vue CLI 3开发中屏蔽的EsLint错误 (.eslintrc.js 在vue3+中 修改这个)

    1.关闭eslint校验有了eslint的校验,可以来规范开发人员的代码,是挺好的.但是有些像缩进.空格.空白行之类的规范,在开发过程中一直报错,未免太过于苛刻了.所以,我还是会选择关闭eslint校 ...

  6. AngularJS 开发中常犯的10个错误

    简介 AngularJS是目前最为活跃的Javascript框架之一,AngularJS的目标之一是简化开发过程,这使得AngularJS非常善于构建小型app原型,但AngularJS对于全功能的客 ...

  7. 饮冰三年-人工智能-Python-30 python开发中常见的错误

    1:触发条件:创建的实体类生成到数据库表时报错 报错信息:TypeError: __init__() missing 1 required positional argument: 'on_delet ...

  8. 工作的思考十七:工作中容易犯的错误 - Delay

    其实IT是一个很严谨的行业,不管是从代码角度还是从日常的工作分配都是按计划来的. 从今年年初到现在,在我的工作中出现了两次“Delay”,第一次不以为然,虽然上司也找过我谈话,但没意识到问题的严重性. ...

  9. python开发中常用的框架

    以下是15个最受欢迎的Python开源框架.这些框架包括事件I/O,OLAP,Web开发,高性能网络通信,测试,爬虫等. Django: Python Web应用开发框架 Django 应该是最出名的 ...

随机推荐

  1. Web编辑器的使用

    1.复制web编辑器到你的项目中的表现层(UI) 2.添加引用:FredCK.FCKeditorV2.dll到你的项目中来 3.页面中加引用 <%@ Register TagPrefix=&qu ...

  2. 【大数据系列】Hadoop DataNode读写流程

    DataNode的写操作流程 DataNode的写操作流程可以分为两部分,第一部分是写操作之前的准备工作,包括与NameNode的通信等:第二部分是真正的写操作. 一.准备工作 1.首先,HDFS c ...

  3. 原生js--文档加载时间

    onload触发时机:文档和所有的图片都加载完毕 DOMContentLoaded触发时机:文档加载并解析完毕,所有deferred脚本执行完毕.但此时图片和async脚本可能依旧在加载. ready ...

  4. PKI技术原理

    转:http://3layer.blog.51cto.com/57448/20430 对称加密         symmetric cryptographic 非对称加密     asymmetric ...

  5. Eclipse 创建和读取yaml文件

    工具和用法: 1. eclipse插件包:org.dadacoalition.yedit_1.0.20.201509041456-RELEASE.jar 用法:将此jar包复制到eclipse-jee ...

  6. Android 逆向工具

    逆向分析工具 https://github.com/skylot/jadx/ https://github.com/google/android-classyshark https://github. ...

  7. Mac下门罗币矿工样本分析

    背景 今天遇到一个JSONRPC的告警,怀疑挖矿木马,IOC是132.148.245.101,无其他信息,随即google一波. 查询网络 遇到了,主动下载样本分析,下载地址:http://rjj.q ...

  8. Artech的MVC4框架学习——第八章View的呈现

    总结:定义在controller中的action方法一般会返回actionResult的对象对请求给予 响应.viewResult是最常见也是最重要的ActionView的一种(p411).view模 ...

  9. 【Android】 导入项目报错的解决方案

    1.打项目的properties -->android 为其指一个运版本, 2.修改default properties 文件 ,改相应版本等级 3.选中项目,单击右键,选中properties ...

  10. jfinal如何获取参数为数组的值

    前台: var postParams = { ids:["qw","ew"]}; 后台: String[] userids = this.getParaValu ...