Python类的定义和使用

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

<span style="color:#000000"><code>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)
</code></span>

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

<span style="color:#000000"><code>#创建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')
``
</code></span>

最后是对象属性的访问:

<span style="color:#000000"><code>a1.printinfo()
a2.printinfo()
</code></span>

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

<span style="color:#000000"><code>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()
</code></span>

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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python是一种面向对象的编程语言,是其中的一种重要的概念。是一种自定义的数据型,它定义了对象的属性和方法。 在Python中,定义可以通过`class`关键字来实现。由属性和方法组成,属性定义了对象的特征,而方法定义了对象的行为。一个可以有多个属性和方法。 使用主要分为两个步骤:的实例化和调用属性和方法。实例化是指创建的对象,它可以使用名后跟一对括号的形式完成。例如,若有一个名为`Person`的,我们可以通过`p = Person()`来创建一个名为`p`的对象。 创建对象后,我们可以通过对象名后跟一个点和属性或方法名的形式来访问属性和方法。访问属性时,可以通过对象名后跟一个点和属性名的形式来获取或修改属性的值。例如,若`Person`有一个属性`name`,我们可以通过`p.name`来获取它的值,通过`p.name = 'Tom'`来修改它的值。 访问方法时,需要在对象名后跟一个点和方法名的形式,然后添加一对括号来调用方法。方法可以包含多个参数,这些参数可以在方法调用时传递给方法。例如,若`Person`有一个方法`say_hello`,我们可以通过`p.say_hello()`来调用它。 在定义中,还可以定义特殊方法,这些方法以双下划线开头和结尾。这些特殊方法可以用来重载的运算符,实现似于加法、减法等操作。例如,`__add__`方法可以用来定义两个对象相加的操作。 总之,Python定义使用非常简单灵活,可以根据需求自定义属性和方法,方便地实现面向对象的编程。 ### 回答2: Python是一种面向对象的编程语言,通过定义使用来实现面向对象的编程。Python中的是一种用户自定义的数据结构,它封装了数据和函数的组合。 定义一个可以使用`class`关键字,后跟的名称。中可以包含属性和方法。 属性是的特征,用于存储数据。它可以是基本数据型,例如整数、浮点数、字符串,也可以是自定义的对象。属性定义的内部,可以通过实例对象或名的方式进行访问。 方法是的行为,用于执行特定的操作。它是定义的函数,可以访问的属性,并且可以实现一些功能。方法可以分为实例方法、方法和静态方法。 - 实例方法是在的实例对象上调用的方法。它的第一个参数通常命名为`self`,指向该实例对象自身。实例方法可以访问实例对象的属性,并且可以通过该实例对象调用。 - 方法是在上调用的方法。它的第一个参数通常命名为`cls`,指向该自身。方法可以访问的属性和其他方法,并且可以通过该调用。 - 静态方法是在上调用的方法,与和实例对象无关。静态方法不能访问的属性和其他方法,并且没有默认的参数。可以通过名或实例对象调用静态方法。 使用时,需要先创建的实例对象。通过实例对象可以访问的属性和方法。可以使用点操作符来访问的属性和调用的方法。 的继承可以通过在定义时指定一个父来实现。子继承了父的属性和方法,并且可以进行修改和扩展。 总结来说,Python定义使用是通过`class`关键字定义,然后通过实例对象来访问的属性和调用的方法。可以包含属性和方法,并且可以通过继承进行扩展。 ### 回答3: Python是一个对象的蓝图,它定义了对象的属性和方法。是面向对象编程的基础,它让我们能够更好地组织和管理代码。 在Python中,定义一个需要使用关键字class,后面跟着的名称。的名称通常以大写字母开头,以便与变量名进行区分。 中的属性是描述对象的特征,它们定义了对象的状态。属性可以是任何数据型,包括数字、字符串、列表等。我们可以在的初始化方法__init__中定义属性,并通过self关键字来访问它们。 中的方法是对象可以执行的操作。方法定义了对象的行为。我们可以通过在定义函数来创建方法。的方法通常会带有一个self参数,它指向方法所属的对象。通过self参数,方法可以访问和修改对象的属性。 使用一个创建对象的过程称为实例化。我们可以通过将名后面跟着一对括号来实例化一个对象。实例化后,我们可以使用对象来访问中的属性和方法。通过对象名后跟一个点和方法名,我们可以调用的方法。 在使用时,我们可以继承其他的属性和方法。通过继承,我们可以在已存在的的基础上创建新的,并且可以重写或添加新的属性和方法。 总结来说,Python定义使用包括两个核心部分:属性和方法。中的属性定义了对象的特征,方法定义了对象的行为。通过实例化,我们可以创建对象,并通过对象来访问的属性和方法。使用的继承机制,我们可以创建新的,并继承已存在的的属性和方法,从而更好地组织和管理代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值