类和对象
面向过程的编程:C
面向对象的编程:C++,JAVA,Python
类:对事物的抽象,如汽车模型
对象:类的一个实例。如大客车
python类定义:使用class关键字定义一个类,并且类名首字母要大写。在类中可以定义一些变量(属性)和函数(方法)
#将需要的变量和函数组合在一起,也称之为‘封装’
创建对象:创建对象的过程称为实例化,当一个对象创建好后,包含三个方面的内容,对象的句柄,属性和方法。
句柄用于区分不同的对象
对象的属性和方法与类中的成员变量和成员函数对应
#类和列表相似,比对,列表L=[],L.append(),调用列表这个类当中的append方法
固定参数self:用来传递当前这个类当中的属性和方法
理解:通俗理解人这个类,人类
class Ren():
#定义Ren这个类
height='人'
weight='一人重'
name='一人高'
#上面的height,,weight,name是Ren这个类的属性
def run(self):
#定义一个方法run,self是固定参数
print('跑步')
wujiadong = Ren()
#wujiadong是类 RenD的一个具体实例(对象)
#wujiadong这个对象有属性和方法
#通过点.来访问属性和方法
#wujiadong.name='邬家栋'
#对属性重新赋值
#wujiadong.money='1000万'
#上面没有money这个属性
print(wujiadong.name)
print(wujiadong.money)
类属性:类由属性和方法组成,类的属性是对数据的封装,类的方法是对类的行为进行封装
类的属性按使用范围分为公有属性和私有属性
类方法:和函数定义一样,分为公有方法和私有方法
#-*-coding:utf-8-*-
import urllib
import urllib2
import re
class QSBK:
def __init__(self):
self.page=1
self.user_agent='Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0'
self.headers={'User-Agent':'self.user_agent'}
self.stories=[]
def getpage(self,page):
try:
url='http://www.qiushibaike.com/hot/page/'+str(page)
request=urllib2.Request(url,headers=self.headers)
response=urllib2.urlopen(request)
html=response.read().decode('utf-8')
return html
except urllib2.URLError,e:
if hasattr(e,'reason'):
print(u'wrong reason',e.reason)
return none
qsbk=QSBK()
print(qsbk.getpage(1))