Python类的定义和使用

为了代码的编写方便简洁,引入了类的定义;
一般,使用 class 语句来创建一个新类,class之后为类的名称(通常首字母大写)并以冒号结尾,例如:

class Ticket():
    def __init__(self,checi,fstation,tstation,fdate,ftime,ttime):
        self.checi=checi
        self.fstation=fstation
        self.tstation=tstation
        self.fdate=fdate
        self.ftime=ftime
        self.ttime=ttime
    def printinfo(self):
        print("车次:",self.checi)
        print("出发站:", self.fstation)
        print("到达站:", self.tstation)
        print("出发时间:", self.fdate)

#类中可以定义所使用的方法,类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称, 按照惯例它的名称是 self;
#init()方法是一种特殊的方法,被称为类的初始化方法,当创建这个类的实例时就会调用该方法;
#self 代表类的实例,self 在定义类的方法时是必须有的,虽然在调用时不必传入相应的参数;
接下来是类的对象的创建:

#创建a1对象
a1=Ticket("G11","xian","beijing",'2019-01-20','13:00','18:00')
#创建a2对象
a2=Ticket("T11","xian","beijing",'2019-01-21','13:00','19:00')
``

最后是对象属性的访问:

a1.printinfo()
a2.printinfo()

输出结果如下:
在这里插入图片描述
现在,用类的方式爬虫12306的车站信息:

import requests
class Station():
    #__init__()方法是一种特殊的方法,被称为类的初始化方法,当创建这个类的实例时就会调用该方法
    # self 代表类的实例,self 在定义类的方法时是必须有的,虽然在调用时不必传入相应的参数
    def __init__(self,code,cn,qp,jp):
        self.code=code
        self.cn=cn
        self.qp=qp
        self.jp=jp
    #类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称, 按照惯例它的名称是 self。
    def printinfo(self):
        print(self.code,self.cn,self.jp,self.qp)
    #self代表类的实例,表示当前对象的地址  self.__class__ 则指向类
    def test(self):
        print(self)
        print(self.__class__)
url="https://kyfw.12306.cn/otn/resources/js/framework/station_name.js?station_version=1.9077"
#url='https://kyfw.lesson10_1.cn/otn/resources/js/framework/station_name.js?station_version=1.9090'
html_text=requests.get(url).text
infos=html_text[:-2].split("@")[1:]
stations=[]

for info in infos:
    station_list=info.split("|")
    #直接将类的对象添加到列表中,通过__init__()方法接受参数
    stations.append(Station(station_list[2],station_list[1],station_list[3],station_list[4]))
#遍历列表,每个元素为类的一个对象
for i in stations[:10]:
    i.printinfo()
    i.test()

结果如下:
在这里插入图片描述
嗯嗯~~就这样啦!

  • 187
    点赞
  • 730
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值