但是,让我感到惊讶的却是,如此多的编码规范—缩进,命名,文件结构,注释风格—这一切让我出乎意料的轻松的阅读任意一段代码,并轻易的看懂它们。这让我震惊—因为我以为这些规范是微不足道的东西。...它们不可能有这么大的作用—但它们却起到了这么大的作用。当你发现只通过看程序的基本语法结构就能读懂一段代码,这种时间上的节省不能不让人震撼!...为什么我要浪费时间遵守这些愚蠢的规范?答案是:统一是有价值的。...只要这规范不是完全的不可理喻,在程序的可理解性上得到的好处会大大的补偿你的损失。 但是,如果编码规范真的是完全不可理喻呢? 如果是这样,那就麻烦了:你被糟蹋了。但这并不是因为这荒谬的编码规范。...如果你为这群蠢货干活,你的确被糟蹋了—不论你干什么、有没有规范。(我并不是说罕有公司被一群蠢货管理;事实很不幸,我们这个世界从来就不缺蠢货,而且很多蠢货都拥有自己的公司。)
出现问题的原因是 Django2.x之后不在支持python2了,而原来集成mysql的mysqlclient不支持python3。...有一段时间,想用python3在Django中写代码,都是用了另一个包pymysql。它简单替换了mysqlclient。...网上很多的方法都是说直接把Django校验版本的那两行代码注释掉就能跑。这种做法很蠢,特别的蠢。 首先,Django不会闲着无聊就加这个校验,一定有其他的原因。...你注释掉现在能跑了,后面出了更麻烦的问题你怎么解决?在解决一个已知问题时,引入N个不确定的问题?其次,你如果要把项目产品化怎么办?每次更新后手动去改代码??你跑Docker跑runner怎么处理?...最后,即便你是自己调试,也是有问题的。这是一个工程问题,如果你处理一个你解决不了的问题时,思路不是用成熟的方案绕过去,而是注释掉报错的地方,你觉得很geek?这不是掩耳盗铃?
一个注释就是可以用来解释代码的一段人类可读的解释或者一个注解。例如,如果你写了一个复杂的正则表达式,你可以添加一个注释,描述代码做了什么。...在你的 Python 代码中添加注释,在将来你阅读你的代码时,可以节省很多的时间和努力。比如说,你想修改一段你在几个月前或者几年前写的脚本。...很可能你不记得为什么你写了一些比较复杂的代码,除非你添加一段注释。这个注释同时也可以帮助其他开发者理解你的代码,以及代码的目的。 注释应该很短,并且切中要点。不要解释那些很容易读懂的代码。...与其删除一些行或者代码块,不如将他们暂时注释掉: # for fruit in fruits: # print(fruit) 二、Python 中的多行注释(注释块) 不像其他流行的编程语言,Python...因为 shebang 以 井号开头,它被认为是一个注释,并且自动被 Python 解释器忽略。 四、总结 编写注释是一个非常好的实践,它帮助其他开发者,包括未来的自己,来理解这段代码在做什么。
今天使用python3创建了一个最新的Django版本的项目,运行后也是成功的 但是在我写完models后要创建数据库的时候报错了。错误如下: 这个错误在Flask开发的时候就知道。...Django的怎么办,要一个一个文件去替换?...google了一会最终解决方案如下: 1、在项目中的__init__.py下加入以下代码: import pymysql pymysql.install_as_MySQLdb() 2、注释掉python...源码中注释掉一段代码: 3、成功创建(一定要记得需要pip install pymysql) 话说Django 2.0 变化好大哦。...好多要设置的东西官方都给设置好了。不错。 Tags: django Archives QR Code
构造函数只会执行一次,先从本身找,找不到,就去上层寻找,顺序如下: D->B->C->A 执行上面的代码,输出:B 为什么会输出B呢?...往下看 将B的构造函数注释掉 class A: def __init__(self): print('A') class B(A): pass # def __init...:C 将C的构造函数注释掉 class A: def __init__(self): print('A') class B(A): pass # def __init...,是属于广度优先 从python3开始,都是广度优先 使用python2执行如下代码: class A(): def __init__(self): print('A') class...和python2执行 结果都是C 总结: python2 经典类是按深度优先来继承的,新式类是按广度优先来继承的 python3 经典类和新式类都是统一按广度优先来继承的 在python2中,继承效率来讲
恢复环境我们要把一行行执行的代码变成一段段执行的代码如果 上次运行的 guido.py 没有了就复制 下面这个然后放到网上系统的剪贴板上print("1982------Guido in cwi")print...n(ext)执行本行跳转到下一行l(ist)列出当前执行位置一行行执行代码 太慢如何快速跳转快速跳转unt(il)跳转到某行c(ont(inue))一直向前直到遇到断点breakpoint添加图片注释,...查询帮助查询帮助找到 有分段作用的命令添加图片注释,不超过 140 字(可选)break在英文中是打断的意思可以用这个break命令把代码打成一段段的吗去查查 break的帮助h break设置断点break...断点的意义被调试程序(debug) 可能非常大可能 有 万行想要 找到程序中的问题一步一步next 太慢添加图片注释,不超过 140 字(可选)所以 只有通过断点才能 直接跳到 某个位置添加图片注释,不超过...总结这次 动态设置了 断点断点 可以把代码切成一段一段的可以 更快地调试调试的目的 是 去除 bug别害怕 bug一步步 总能找到 bug这 就是 程序员基本功调试 debug在bug出现的时候甚至还没有出现操作系统那操作系统是怎么开始有的呢
,这让我想起了之前看到的一篇文章,我觉得它把为什么不用僵尸代码几个点总结的非常好,我在此基础上作了一些修改分享给大家 所谓僵尸代码是指很多被注释的代码,为什么称它们为僵尸代码?...当然,被注释掉的代码仍然是代码。 烂程序员也许会争辩说,他们注释掉这些代码是为了“万一”以后有人会需要它们。事实上,这好心反而是害了大家。这实际上说的是害怕风险,缺乏对版本控制系统作用的信任。...Donald Knuth 而僵尸代码让你讲话讲不清楚。一个程序员需要去阅读被注释掉的代码吗? 僵尸代码造成歧义妨碍调试 注释掉的代码会带来歧义,人们会怀疑这些代码是否该注释掉。...说的更明白些,任何被注释掉的代码都是僵尸代码,都应该被删掉。不管有多少。不管是在发布的产品中还是在开发环境中。僵尸代码有时会在生死之间摇摆。如果代码被注释掉,这很有可能有东西没有完成。...心里的核对表 如果你打算要注释一段代码,请先问问自己: 如果有可能的话,什么时候会取消注释? 是否能删掉它,如果日后有需要,从版本控制系统里找回?
行内注释 正常来说,对于行内注释,你可以直接在代码后面添加 # 符号后再添加注释内容,这种注释方法是行内注释。 块注释 如果你的注释是另起一行的话,那么表示的注释为单行或者多行注释。...Python 解释器针对上面的代码将会先读进解释器,但是因为没有指派变量或者值,Python 将会忽略掉上面的代码,这个就是为什么你可以使用单引号或者双引号来进行注释的原因。.../usr/bin/python3 上面的代码表示的是这个脚本使用的是 Python 3 解释器的脚本。 这是脚本语言需要共同遵守的规则:当第一行为 #!.../path/to/script/interpreter 时,指定了用来执行本脚本的解释器。 使用这个需要注意下面的内容一些内容: 必须是文件的第 1 行 必须以 #! 开头。.../usr/bin/python3 # -*- coding: utf-8 -*- 上的内容,然后才是 Python 的代码,上面的内容表示的是当前 Python 使用的编译器版本和 Python 代码使用的字符集
经过较长时间的反思,准备整理第二版Python基础教程--菜鸟学Python,第二版会加上自己这一段时间来学习python过程中的一些感悟,走过的弯路,毕竟之前的自己还是太嫩了,会补充之前遗漏的知识点,...Python的源代码同样遵循GPL(GNU General Public License)协议。本教程基于Python3,Python的3.0版本,常被称为Python3000,或简称Py3k。...1#python 2.x: 2 3>>> -1 // 2 4-1 5 6#python 3.x: 7 8>>> -1 // 2 9-1 注意的是并不是舍弃小数部分,而是执行floor操作,如果要截取整数部分...在2.x时代,所有类型的对象都是可以被直接抛出的,在3.x时代,只有继承自BaseException的对象才可以被抛出。...1# 单行注释 2''' 3多行注释 4''' 5""" 6多行注释 7""" 行与缩进:python最具特色的就是使用缩进来表示代码块,不需要使用大括号 {},这个地方是很多初学者特别容易出错的地方,
Python 自动化测试面试题目汇总 1、super 是干嘛用的?在 Python2 和 Python3 使用,有什么区别?为什么要使用 super?请举例说明。...④ 在多线程操作系统中,进程不是一个可执行的实体。 (2)使用场景:同时操作一个对象的时候,比如操作的是一个全局变量,我用线程,因为全局变量是所有线程共享的。 10、什么是ORM?为什么要用ORM?...11、写一段代码,ping 一个 ip 地址,并返回成功、失败的信息。 答: 使用 subProcess 模块的 Popen 方法(使用简单,具体用法,这里不展开)。...答: 守护精灵,和 Python 并发编程中的 daemon 原理一样,父进程/父线程的代码执行完毕,它就终止,要写在 start 方法前面。另外,要找到配置文件,注释掉两行代码。...16、介绍一下你在这个项目中是如何使用 Jenkins 的。 答:用的不深入,说了基本操作,比如定时构建执行代码。 17、说说你对敏捷模式的认识。 答:小步快跑,拥抱变化。
前言 使用ElementUI已经有一段时间了,在一边上手开发后台管理系统的同事,也记录了一些笔记,一直都没有时间将这些零零散散的笔记总结起来,整理成一个比较系统详细一点的教程,可以留着以后来看。...'/' : './', 注释掉 //publicPath: './', 5:重新执行命令,npm run build:prod,即可 使用npm run build:prod 遇到的请求被重定向的问题...Request method 'GET' not supported 打开F12,查看报错,可以发现,在登录的这个请求上,原本的post请求,被重定向成get 请求了,所以才会报错。...那么,为什么在本地测试环境里面一些正常的项目,使用了npm run build:prod ,打包之后,就会出现了问题哩?...解决办法: 在打包之前,将代理注释一下,打开vue.config.js文件,找到proxy 将这一段代码注释掉,重新打包即可解决问题。
将以上内容保存为hello.py,执行命令python3 hello.py程序将输出Hello World!。 接下来来看下文件内容的含义: 第一行和第二行是注释行。...第一行注释可以让该文件在安装有 python3 的 Unix/Linux/Mac 设备上运行,第二行注释表示该文件本身使用标准 UTF-8 编码。...第三行是一个字符串,表示模块的文档注释,任何模块代码的第一个字符串都被视为模块的文档注释。 第五行是该文件真正的代码行,在程序运行过程中改行输出字符串Hello World!。...循环 在程序的执行过程中往往需要需要重复执行一段代码以完成相应的计算任务,这时就需要用到循环语句,在 python 中循环语句有两种,第一种是 while 循环,只要条件满足就不断运行,直至条件不满足时退出...while 循环 while 语句主要用来执行一段重复的代码,比如我们要计算 100 以内的数的和 #!
继承 什么是继承: 继承是一种创建新类的方式,在 python 中,新建的类可以继承一个或多个父类,父类又可称为基类或超类,新建的类称为派生类或子类 父类必须在子类上面 一个类 可以被多个类继承...pass #def func(self): #这里注释掉调用的就是 A # print('D') d = D() d.func() 钻石继承问题 遵循广度优先(适用于多个继承都可以找到...#2.这里也注释掉调用的是 C pass #def func(self): # print("B") class C(A): #3.这里也注释掉调用的是...pass #def func(self): # print("C") class D(B,C): pass #def func(self): #1.这里注释掉调用的是...经典类中 深度优先 新式类中 广度优先 python2.7 新式类和经典类共存,新式类要继承 object python3 只有新式类,默认继承 object 经典类和新式类还有一个区别 mro
注释是开发人员在编写程序时,给一段代码的解释或提示,有助于提高程序代码的可读性。注释不会被计算机编译。 要不要加注释?为什么要加注释? 注释的存在就是为了方便自己的二次阅读和代码维护以及项目交接。...任何位于 /* 和 */ 之间的文本都会被注释 /* 这是多行注释 定义一个数组 */ var ary = []; 用注释来阻止代码执行 —— 被注释的 JS 代码将不被执行 //alert(...单行注释为什么有时候写在代码上方,有时候写在代码后方? 注释可以书写在代码中的任意位置。个人理解,一般写在代码上方的时候意为对后面一段代码的注释,而写在代码后方的时候意为对本行代码的注释。...众所周知,注释的代码是不会被执行的。但是小编在查资料时看到了一段比较有意思的代码, Java 中的一行注释“被执行”了?...在上面这段代码把 \u000d 给解析了,后面的代码就到了下面一行,超出了被注释的范围(单行注释的注释范围仅在当前行),所以执行结果为 钱二 而非 赵大。
,是今后一段时间的学习方向。...也请教过大神,说要仔细检查 settings 文件,我于一行一行代码地去看,没发现任何问题,将数据库删除,重新建立,错误依旧,简直被虐残了。这时,内心是崩溃的,气得去睡了一觉。...中引用了,并在 view.py 中被导入,估计就是它了,注意掉 view.py 中的 from . import initialize 再次执行 python manage.py makemigrations...python manage.py migrate 成功,这时小兴奋了一把,然后再把恢复那步注释操作,执行 python manage.py runserver 成功地启动了 cmdb 后端。...首先,技术问题都是可以解决掉的,这里说的技术问题是是已经成熟的技术,由于编码错误或配置错误导致程序报错、系统故障等问题。
文件格式后缀为 .vue 为什么不是.html ?这是因为在vue-cli前端中,所有的html模板都要以.vue结尾,因为这样的后缀就意味着里面是按照vue的语法来写的。...答案就是,vue-cli会把.vue后缀的文件,自动翻译成index.html中的一部分代码,最终django就是来给浏览器返回这个index.html而已。...我们现在改成这样,就可以实现我们要的效果了: 这里的name其实没什么用,就删了。...就干脆注释掉即可。 友情提示,选中要注释掉的所有行,按command + ? 即可反复注释/生效 然后ctrl+s保存,看看浏览器(浏览器不需要刷新,它监控到组件变化,会自动刷新。)...那如果说前后端要合并起来,并在django中启动打开页面的话,要怎么做呢? 通俗来说就是要把前端的东西打包一下。 还是在终端v_project根目录下中执行命令:npm run build 。
注释是每一个程序语言必备的功能,它可以帮你整理思路,也可以让他人快速读懂你的代码,还可以暂时禁用某行代码。总而言之,没有注释的代码不是一个好的代码。...(1) 解释本行的功能:在例1中我们分别给 打在屏幕中打印一句话和 计算 1+1 两行代码予以注释,当然作为一个例子,代码本身是很简单的,大家如果碰到很复杂的一行代码,比如一个复杂的计算公式,这时候注释的重要性就出来了...(2) 解释函数的功能:在例2中我们定义了一个超级简单的函数,一个实现a+b的函数, a 和 b 是待输入的变量,我们在函数的后面注释一段话,告诉大家这是一个实现加法运算的函数,方便后面的调用。...值得注意的是 print函数在 Python3 中一定加括号 () 来使用。 最终的运行结果如下: ? 练习题 1,定义一个减法函数,并注释出它的功能。...3,写出两行代码同时调用减法函数,并注释掉其中一行,打印结果。
单行注释 Python编程语言的单行注释常以#开头,单行注释可以作为单独的一行放在被注释代码行之上,也可以放在语句或者表达式之后。 ...Python注释除了可以起到说明文档的作用外,还可以进行代码的调试,将一部分代码注释掉,对剩余的代码进行排查,从而找出问题所在,进行代码的完善! ...而set并不可以,如果要连接两个set,使用union()求并集的方法。 14、 什么是函数? 当我们想执行一系列语句时,我们可以为其赋予一个名字。 ...-1的情况 对象的别名被显式销毁,例如del a 对象的别名被赋予新的对象,例如a=24 一个对象离开它的作用域,例如f函数执行完毕时,func函数中的局部变量(全局变量不会) 对象所在的容器被销毁...57、有一个纯字符串,编写一段代码,列出其所有字符的大小写组合。 total_str = 2**len(a) #总共有多少总情况。
如果不选中那么admin这个会在setting.py的url中注释掉,同时在setting.py文件中的INSTALLED_APPS的变量中添加django.contrib.admin。...,这里就需要: 同步/生效表结构:在项目根目录下,python3 manage.py makemigrations (django新版本可以不用执行)和 python3 manage.py migrate...下的uiProject:项目全局配置文件夹,该文件夹是项目自动生成的,相当于项目容器 init.py:这个文件是生成的空文件,用它标识一个目录为Python的标准包即模块包,如果没有那么他所在的文件夹就是个普通的文件夹不能被其他模块导入...init.py:生成的空文件 0001_initial.py:是在执行python manage.py makemigrations命令时生成的 0002_db_duan.py:也是在执行python...manage.py makemigrations命令时生成的 init.py:生成的空文件 static:我自己建立的,后面用来存放静态文件 templates:模版语言,用来存放HTML代码和逻辑控制代码
(为什么不安全?留给你思考下) 继续注释掉long类型的方法。输出结果是: hello Character 这时发生了一次自动装箱,’a’被封装为Character类型。 ...继续注释掉Character类型的方法。输出 hello Serializable 为什么? 一个字符或者数字与序列化有什么关系?...继续注释掉Object方法,这时候输出: hello char… 这个时候’a’被转换为了一个数组元素。 ...其实这也是java语言实现重载的本质 重写 我们先来看一段代码 //定义几个类public abstract class Animal { public abstract void run(...他们的静态类型是一样的,虚拟机是怎么知道要执行哪个方法呢? 显然,虚拟机是根据实际类型来执行方法的。
领取专属 10元无门槛券
手把手带您无忧上云