# -*- coding: utf-8 -*-
import requests
class Spider():
name = '猪八戒'
def __init__(self,url):
#类初始化方法,实例化类最先调用,可直接通过类名调用
self.target = url
#target 即为实例化属性
#实例化后的属性可以被实例化对象访问,也可以被实例化方法访问
#实例化属性也可以被实例化方法(self)访问
def walk(self):
res = requests.get(self.target)
self.name = '小王八' # 不能通过self修改类属性
self.run() # 实例方法可以调用类方法
print(self.name)
@classmethod # 此标签下面方法为类方法,类方法可以访问或修改类属性,但不能调用初始化实法内容
def run(cls):
cls.name = '小猪猪' #
print(cls.name)
class Baid(Spider): #继承,可以调用父类所有的方法和属性
# 继承 方法重写,增加初始化函数属性,新增方法
def __init__(self,url,fei,pao): #子类新增初始化函数属性,继承初始化函数中必须有父类参数
super().__init__(url) # 传递父类初始化函数参数
self.fei = fei
self.pao = pao
def walk(self):
print('百度-方法重写',self.fei)
def swim(self):
print('游泳-方法新增',self.pao)
b = Baid('http://www.xiaoxingyun.net','我会飞','我会跑')
b.walk()
b.swim()