[百度飞桨领航团零基础Python速成营]类对象笔记

Python类对象

课程链接 https://aistudio.baidu.com/aistudio/course/introduce/7073 可以一起学习

问题:

Kelly教练每天在训练场忙的焦头烂额,根本没有时间摆弄计算机,需要人帮他处理选手的数据!

运动员在刻苦训练,每跑一个600米,kelly就会计时并将时间记录到计算机中的文本文件中,共有4个选手James、Sarah、Julie和Mikey,分别对应4个文件

james.txt 2-34,3:21,2,34,2.45,3.01,2:01,2:01,3:10,2-22

sarah.txt 2:58,2.58,2:39,2-25,2:55,2:54,2.18,2:55,2:55

julie.txt 2.59,2.11,2:11,2:23,3-10,2-23,3:10,3.21,3-21

mikey.txt 2:22,3.01,3:01,3.02,3:02,3.02,3:22,2.49,2:38

要求输出每个运动员前三好的成绩

为什么要使用类对象

使用类的好处:

降低复杂性->更少的bug->提高可维护行

类可以将数据与函数绑定在一起,使代码模块化

调用数据和函数,使用对象名.的方式,使代码更加优雅

类是图纸,是模板,可以用来造房子

面向对象的世界

代码通常称为类的方法,数据通常称为类的属性,实例化的对象称为实例

class Athlete:
    def __init__(self,a_name,a_dob=None,a_times=[]):
        self.name = a_name
        self.dob = a_dob
        self.times = a_times

    def top3(self):
        return sorted(set([self.sanitize(t) for t in self.times]))[0:3]
        
    def sanitize(self,time_string):
        if '-' in time_string:
            splitter = '-'
        elif ':' in time_string:
            splitter = ':'
        else:
            return (time_string)
        (mins,secs) = time_string.split(splitter)
        return (mins+'.'+secs)

这样就定义了一个“运动员”类


如何定义类:

class Athlete:        #好像还可以继承

  • 第一部分:class定义类的关键字,Athlete符合python标识符命名规则,:表示类内容的开始

def init(self,a_name,a_dob=None,a_times=[]):

  • 第二部分:def定义函数的关键字,init 方法是一个特殊方法会在实例化对象时自动调用,我们会在这个方法中对数据进行赋值。self作为类中函数的第一个参数,方便该方法调用该类的其他属性和方法。

  • 第三部分:自定义的属性和方法

如何使用类:

  • 创建对象                                    对象名 = 类名(参数)
  • 使用.调用类的方法和属性          对象.属性名  对象.方法名()

类属性

类属性是所有对象共有的数据

在_init_方法前面可以加上类属性

class Athlete:

    #运动员集训了,要买东西的同学要把地址改一下
    address = '中国足球协会训练基地xx街xx号'

    def __init__(self,a_name,a_dob=None,a_times=[]):
        self.name = a_name
        self.dob = a_dob
        self.times = a_times

类对象可以共用类属性

julie = Athlete(julie_name,julie_dob,julie_times)
james = Athlete(james_name,james_dob,james_times)

print(julie.address)
print(james.address)
print(Athlete.address)

#输出三个中国足球协会训练基地xx街xx号

如何使用:

定义:

方法定义时,使用@classmethod标记

类属性也可以在class之外进行修改

调用:

类名.类方法

对象.类方法

私用的属性和方法的定义:

在属性和方法名前加 __ 两个下划线 

私有属性只能通过类中的方法来调用私有的属性和方法,不可以在外部调用

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sssyit

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值