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