deepcopy没有什么说的,使用这个方法,会在内存中开辟一块新内存出来,赋值的两个变量等值,但是内存地址完全不同,所以相互不会影响,要说的是浅copy,还是先看例子: a = [0, 1, 2, 3, [4, 5, 6], 7] b = a[:] a[0] = 5 a[4][0] = 99 print(a) print(b) 结果是: [5, 1, 2, 3, [99, 5, 6], 7] [0, 1, 2, 3, [9

阅读全文 »

首先说明一点,Python赋值没有值传递,只有引用传递,只要是出现赋值符号 = 就是引用传递。 >>> a = 1 >>> b = a >>> a = 2 >>> b >>> 1 修改a,b并没有发生变化,然后看下面的: >>> a = {'name': 'killer', 'age':24} >>> b = a >>> del a['name'] >>> b >>> {'age':

阅读全文 »

使用PyCharm写Python项目的时候导入项目内部的模块的时候,import module下面会有红色波浪线,而且提示no module named xxx PyCharm没有找到相关模块,原因是因为项目的Source Root没有配置正确,要把Source Root设置为你项目的根目录: 打开settings,然后点击左边的Project,选择当前项目,然后点击右边的Add Content Root,如果已经存在的话就删除(应该是错误的目录),然后添加正确的项

阅读全文 »

前两天使用Apscheduler和Scrapy做的定时抓取遇到了一个问题,蜘蛛抓取第一次之后就不再抓取了,但是Apscheduler是没有问题的,一直无法解决,后来经过一个人的指点,有Scrapyd这东西,服务端的Scrapy,提供http接口,可以实现项目以及蜘蛛的管理,在这简单记录一下Scrapyd的使用过程。 首先安装Scrapy,然后是安装Scrapyd,可以通过pip或者源码安装,安装之后还需要安装一个东西,就是scrapyd-client,github地址

阅读全文 »

laravel的migrate是个不错的工具,可以实现数据库模型的版本控制,今天遇到一个问题,就是数据库的某些字段需要修改,使用migrate进行重命名。 以users表的username字段为例,重命名为name 首先生成migrate文件: php artisan make:migration rename_name_column_to_users --table=users 然后,打开生成的文件,分别在up和down方法

阅读全文 »

在使用Laravel的FormFacade生成密码框的时候出现了错误,HTML代码中没有class属性,当时错误代码是这样写的: {!! Form::password('password', null, ['class' => 'form-control']) !!} 后来网上查了一下,是因为password这个函数和text函数不同,text函数第二个参数

阅读全文 »

一般是外键关联主键,但是会遇到非主键关联的情况,Yii非主键关联现在我知道的有两种写法: 第一种: public function relations() { return array( 'user_lesson_hour' => array(self::HAS_MANY,'BUserLessonHour','','on'=>'t.lesson

阅读全文 »

在公司用24寸的显示器写代码习惯了,回去之后用笔记本14寸的屏幕很不习惯,于是最近入手了一款显示器,准备外接到笔记本上,本以为是个很容易的事情,但是却饶了不少弯子,包括修改显卡驱动,使用powerstrip强制修改分辨率,均失败,网上有不少人说HDMI无法支持这个分辨率,差点就信了。最后在国外一个论坛上找到了方法,其实这个方法是最简单的,本文以HD4000为例,其他的应该也是类似的=。= 各种参数</sp

阅读全文 »