摘要: 实例在创建出来之后,可以动态的添加属性和方法, 那如果想要限制添加的实例属性,可以用一下 __slots__ 这个东西: 在添加 name, age 的时候都没有问题 ,在添加 addr 的时候,会限制添加,就算在 __init__ 里面添加也不行. 需要注意的是,对继承这个父类的子类没有任何作用. 阅读全文
posted @ 2018-05-19 13:47 cccy0 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 给对象添加实例属性,可以直接这样 t.age = 18 ( 假设 t = Test() ) 给类添加类属性 , 也可以直接这样 Test.age = 18 那给对象添加实例方法,可以在类外面先定义一个函数 然后 用 types.MethodType() 方法 把 函数绑定到对象的一个属性上面: 这个 阅读全文
posted @ 2018-05-19 13:38 cccy0 阅读(279) 评论(0) 推荐(0) 编辑
摘要: 一个类中,假如一个私有属性,有两个方法,一个是getNum , 一个是setNum 它,那么可以用 Property 来使这两个方法结合一下,比如这样用 num = property(getNum, setNum) 那么 如果创建一个对象 t = Test() , t.num 这样就相当于调用了 g 阅读全文
posted @ 2018-05-18 18:40 cccy0 阅读(217) 评论(0) 推荐(1) 编辑
摘要: sys模块中的 argv 保存的是当你运行一个py文件的时候给他传递进去的参数,如: 他会保存传递进去的参数,第一个参数默认就是执行文件的路径和文件名,加的多个参数会以空格来区分开.保存在这个列表中. sys.path 中保存的是默认模块的搜索路径,里面是这样的: 如果有自己的模块,和主要的文件不在 阅读全文
posted @ 2018-05-17 13:54 cccy0 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 异常处理方法一般为: 可以用 raise 抛出一个异常,以下是一个输入字符太短的异常例子: 如果输入字符长度小于3,那么将会抛出 ShortInputException 异常: 注意 如果异常处理时 再次 使用 raise 后面什么都没有,那么代表把这个异常还给系统,让解释器用默认的方式处理它. 阅读全文
posted @ 2018-05-16 23:06 cccy0 阅读(5774) 评论(0) 推荐(0) 编辑
摘要: __new__ : 这个方法的作用主要是创建一个实例,在创建实例时首先会调用 __new__方法 ,然后调用__init__对实例进行初始化, 如果想修改 __new__ 这个方法,那么最后要 return 调用一下父类的 __new__ 方法,因为里面有创建实例的过程,除非你在自定义的 __new 阅读全文
posted @ 2018-05-16 21:38 cccy0 阅读(580) 评论(0) 推荐(0) 编辑
摘要: 类属性 定义在类里面,方法外面的属性,一般属于这个类,如下面的 num 就是类属性: 类属性用 实例.类属性 或者 类.类属性 都可以访问, 如 a = Test() 用 a.num 可以访问 ,但是如果这个实例有一个实例属性 self.num 那么这样访问的其实是 self.num , 所以一般用 阅读全文
posted @ 2018-05-15 21:51 cccy0 阅读(318) 评论(0) 推荐(0) 编辑
摘要: 1.继承,调用父类属性方法 在python里面,继承一个类只需要这样写: 这样Cat就有了Animal的所有属性和方法,调用的时候直接调用就可以了: 这个时候,如果子类想重写父类的方法,可以直接重写: 如果想调用父类的 heshui 这个方法,可以用 super() : 2.强制调用父类私有属性方法 阅读全文
posted @ 2018-05-15 11:42 cccy0 阅读(34276) 评论(1) 推荐(1) 编辑
摘要: __init__:当实例化一个类的时候,首相会执行__new__方法创建一个对象,接下来会执行__init__方法对对象的一些属性进行初始化. 所以如果对象有属性,一般会直接写在__init__方法里面: __str__:当实例化一个类之后,就有了一个对象的引用,如 test = Test() 这个 阅读全文
posted @ 2018-05-14 23:08 cccy0 阅读(391) 评论(0) 推荐(0) 编辑
摘要: 对于列表这样的可变类型来说,对它操作是不会改变内存地址的. 若列表里面存的元素是整数这样的不可变类型,若修改这个元素那地址还是会改变,如: 这个时候改变 a 列表第一个元素的值: 可以看出,b没有受任何影响,因为元素类型是不可变类型(整数) 但是如果元素类型是可变类型,如列表: 现在如果改变a列表的 阅读全文
posted @ 2018-05-10 00:08 cccy0 阅读(3598) 评论(1) 推荐(0) 编辑
摘要: copy : 相当于只是拷贝表面一层,如果里面还有深层次的引用,那么也是直接拷贝引用的地址,而且如果拷贝对象是不可变类型比如元组,那么也是直接拷贝引用. deepcopy: 无论是拷贝可变类型还是不可变类型,无论是里面嵌套了多深层次的引用关系,统统复制一份,在新的空间中存储起来. 之前在廖雪峰老师的 阅读全文
posted @ 2018-05-08 02:07 cccy0 阅读(381) 评论(0) 推荐(0) 编辑
摘要: 话不多,上例子 没什么问题,每次循环都要修改一次列表, 下个例子 .....不想说话,这个坑踩了俩回了= = 原因是等号= 这个东西右边东西计算完成之后才会赋值(引用)给左边... 第一个例子每次循环都有一个赋值语句: L[i] = L[i] + L[i-1] 而下边这个列表生成式需要全部生成完之后 阅读全文
posted @ 2018-05-08 00:34 cccy0 阅读(505) 评论(0) 推荐(0) 编辑
摘要: 1. debug:在app.run()里面加上app.run(debug=True), 在浏览器中调试的时候可以直接显示出错误. 2. 在url中传递参数,可以这样 3. 根据视图函数来找url地址: 4. 跳转/重定向: 5. 模板: 6. 模板传参: 7. jinja2 语句: 8. jinja 阅读全文
posted @ 2018-05-04 23:01 cccy0 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 连接数据库: 建立游标: 创建一个名字叫 lj 的数据库: 选则要操作的数据库: 添加7个字段: 提交修改: 向表中插入数据: 整个爬取网站数据然后存入数据库的脚本: #-*- coding:utf-8 -*- import requests,re,pymysql def get_info(url) 阅读全文
posted @ 2018-04-17 19:56 cccy0 阅读(363) 评论(1) 推荐(0) 编辑
摘要: 最近在服务器上想运行个脚本,装了个python3.6,但是他还自带了个2.7版本,后来发现上面还有3.5版本的python- -都不知道运行的是哪一个版本了,所以在这整理一下. 软链接: 在python3.6版本刚装上的时候,说是需要设置一个软链接,比如,python装在了 /usr/local/p 阅读全文
posted @ 2018-04-16 20:08 cccy0 阅读(2525) 评论(0) 推荐(0) 编辑