python网络爬虫笔记(五)
一、python的类对象的继承
1、所有的父类都是object类,由于类可以起到模块的作用,因此,可以在创建实例的时候,巴西一些认为必须要绑定的属性填写上去,通过定义一个特殊的方法 __init__,绑定属性值、,注意 __init__ 方法的第一个参数永远是self,表示创建的是实例本身,在__init__方法内部,就可以将各种属性绑定到self,因为self就是指向创建实例本身。有了__init__方法就不能在创建实例的时候传入空的参数。而且必须传入与__intit__方法匹配的参数。但是self不需要再次传入,python解释器自己会把实例变量传进。
2、数据封装,面向对象编程最重要的是数据封装,在Student类中,每个实例都有各自的name 和score这些数据,可以通过函数来访问这些数据。封装的另一个好处就是可以随时给类添加新的方法,如果让内部的属性不被外部访问,可以把属性的名称前加上两个下划线__,,,实例的变量名如果以__开头,就表示这是一个私有变量(private)只可以在内部访问。
但是注意的一点就是 变量名__xx__这样双划线开头的并且是结尾的,是特殊变量。特殊变量只可以直接访问的。
3、判断一个对象是否属于这个类的语句
4、多态的好处就是当我们需要传入Dog Cat Tortoise 时,实际上任何依赖Animal作为参数的函数或者方法都可以不加修饰正常运行,原因就是出于多态,多态的好处,当我们传入Dog Cat 等 我们只需要修改Animal类就可以,因为Dog Cat 等就是Animal的类型,然后按照Animal类型进行操作,由于Animal类型有run()方法,因此传入的类型是Animal 类或者子类,就会自动调用实际类型的run() 方法,就是多态的。对于静态语言如果传入Animal类型,则传入的对象必须是Animal类型或者子类,否则无法调用run() 方法,对于python动态语言来说,只需要传入的对象有run()方法就可以啦。
继承可以父类的所有功能直接拿过来名字类只需要新增自己的特有方法,也可以吧父类不适合的方法覆盖重写,
5、类型判断type(),从这里可以看出type函数其实返回的就是 class
6、判断基本数据类型可以直接写int ,str等,但是如果判断一个对象是否是函数就要使用 types模块中定义的常量,
但是对于class继承关系来说,使用type()就很不方便,我们要判断class类型可以使用isinstance()函数,isinstance()判断一个对象是否是该类型的本身或者位于该类型的父类继承链接上。
能用type()判断的基本类型也可以会用isinstance()判断,获得一个对象的所有属性和方法使用dir()函数
顺便插一句 pycharm的server注册链接地址测试可行的http://idea.liyang.io
对对象进行属性的测试
python网络爬虫笔记(五)的更多相关文章
- Python网络爬虫笔记(五):下载、分析京东P20销售数据
(一) 分析网页 下载下面这个链接的销售数据 https://item.jd.com/6733026.html#comment 1. 翻页的时候,谷歌F12的Network页签可以看到下面 ...
- [Python]网络爬虫(五):urllib2的使用细节与抓站技巧
转自:http://blog.csdn.net/pleasecallmewhy/article/details/8925978 前面说到了urllib2的简单入门,下面整理了一部分urllib2的使用 ...
- [Python]网络爬虫(五):urllib2的使用细节与抓站技巧(转)
1.Proxy 的设置 urllib2 默认会使用环境变量 http_proxy 来设置 HTTP Proxy. 如果想在程序中明确控制 Proxy 而不受环境变量的影响,可以使用代理. 新建test ...
- Python网络爬虫笔记(二):链接爬虫和下载限速
(一)代码1(link_crawler()和get_links()实现链接爬虫) import urllib.request as ure import re import urllib.parse ...
- python网络爬虫笔记(九)
4.1.1 urllib2 和urllib是两个不一样的模块 urllib2最简单的就是使用urllie2.urlopen函数使用如下 urllib2.urlopen(url[,data[,timeo ...
- python网络爬虫笔记(八)
一.pthon 序列化json格式 1.将python内置对象转换成json 模块,dumps()方法返回的是一个str,内容是标准的JSON,dump()方法可以直接吧JSON写入一个file-li ...
- python网络爬虫笔记(六)
1.获取属性如果不存在就返回404,通过内置一系列函数,我们可以对任意python对象进行剖析,拿到其内部数据,但是要注意的是,只是在不知道对象信息的时候,我们可以获得对象的信息. 2.实例属性和类属 ...
- python网络爬虫笔记(四)
一.python中的高阶函数算法 1.sorted()函数的排序 sorted()函数是一个高阶函数,还可以接受一个key函数来实现自定义的函数排序,key指定的函数作用于每个序列元素上,并根据k ...
- python网络爬虫笔记(三)
一.切片和迭代 1.列表生成式 2.生成器的generate,但是generate保存的是算法,所以可以迭代计算,没有必要,每次调用generate 二.iteration 循环 1.凡是作用于for ...
随机推荐
- Day17总结
1:登录注册案例(理解) 2:Set集合(理解) (1)Set集合的特点 无序,唯一 (2)HashSet集合(掌握) A:底层数据结构是哈希表(是一个元素为链表的数组) B:哈希表底层依赖两个方法: ...
- LightOJ - 1245 Harmonic Number (II) 求同值区间的和
题目大意:对下列代码进行优化 long long H( int n ) { long long res = 0; for( int i = 1; i <= n; i++ ) ...
- Shell-自动建立全国城市
Code: #!/bin/bash function mkdirFun() { if [ ! -d $1 ];then mkdir -p $1 fi } filename=city1.txt date ...
- ibevent 和 libev 提高网络应用性能【转】
转自:https://www.cnblogs.com/kunhu/p/3632285.html 构建现代的服务器应用程序需要以某种方法同时接收数百.数千甚至数万个事件,无论它们是内部请求还是网络连接, ...
- DevExpress VCL 的 cxDBTreeList 的使用方法
DevExpress VCL 的 cxDBTreeList 的使用方法:(假设控件名为: WBSTree) 1.控件WBSTree 通过绑定 DataSet 获取数据记录(Nodes),通过 Col ...
- Aurelius vs mORMot vs EntityDAC Delphi 的 ORM框架
Aurelius vs mORMot vs EntityDAC Delphi 的 ORM框架: http://www.tmssoftware.com/site/aurelius.asp#produ ...
- python3+selenium入门10-表单切换
当元素在ifarm或farm中时,需要先进入到表单中,然后才能定位元素进行操作.直接对元素定位.会提示元素无法找到. <!DOCTYPE html> <html> <he ...
- 设计模式C++学习笔记之一(Strategy策略模式)
无意中,从网上下到一本电子书<24种设计模式介绍与6大设计原则>,很好奇这里有24种设计模式,印象中GOF写的<设计模式>(Design Patterns),好像只有23种吧. ...
- Loj 【CQOI 2006】简单题,mmp
#10117. 「一本通 4.1 练习 2」简单题 题目描述 题目来源:CQOI 2006 有一个 nnn 个元素的数组,每个元素初始均为 000.有 mmm 条指令,要么让其中一段连续序列数 ...
- linux下使用命令模式去编译Qt程序
1.打开终端输入,qmake -v ,如果提示版本信息正,就可以编译程序了. 2.当前目录切换到程序源代码目录,cd /home/likewei/untitled2 3.生成untitled2.pro ...