类可以将数据与函数封装起来,用一个例子解释,先定义一个类:

 class athlete:
def __init__(self,a_name,a_dob=None,a_times=[]):
self.name = a_name
self.dbo = a_dob
self.time = a_times

athlete是类的名字,self变量名,self后面的都是参数,而后面的代码就是将a_name这个参数的值赋给了self的name属性,以此类推。定义好了之后来试试:

 sarah = athlete('sarah sweeney','2002-6-17',['2:58','2.58','1.56'])
sarah.time
['2:58', '2.58', '1.56']
sarah.name
'sarah sweeney'

再修改一下这个类,让它的功能更强大:

 class athlete:
def __init__(self,a_name,a_dob=None,a_times=[]):
self.name = a_name
self.dbo = a_dob
self.time = a_times
def top3(self):
return(sorted(set([sanitize(t) for t in self.time]))[0:3])

在类中定义函数,函数中可以直接引用类的属性值,即在7行直接引用了self.time。现在再来看看这个类的新功能:

 >>> c_james=athlete('James Lee','2002-3-14',['2-01', '2-16', '2:22','2:30'])
>>> c_james.top3()
['2.01', '2.16', '2.22']

总结的来说,类其实就是自己所定义的一种特殊的数据类型

Python还可以定义继承了内置类(比如说list,dict,set)的类,这种方法用我自己的话解释就是将自己想要的功能添加到Python原有的类上面,定义方式只要在类名称后面加上要继承的类:

 def newlist(list):
def __init__(self,new_varible...):
....

Python学习笔记:类的更多相关文章

  1. Python学习笔记——类和对象

    类和对象 1. 一个例子 # 对象 = 属性 + 方法 # Python 中的类名称约定首字母大写,而 Python 函数名首字母小写 class Turtle: #属性 color = 'green ...

  2. 廖雪峰Python学习笔记——类和实例

    Class MyList(list): __metaclass__ = ListMetaclass #它表示在创建MyList这个类时,必须通过 ListMetaclass这个元类的LIstMetac ...

  3. python学习笔记--类(一)

    # 类是为了代码重用 class First: #类 pass #实例 = 类名() obj = First() # 类是一种产生实例的工厂# 类和模块的差异在于,内存中特定的模块只有一个实例(所以我 ...

  4. python学习笔记4_类和更抽象

    python学习笔记4_类和更抽象 一.对象 class 对象主要有三个特性,继承.封装.多态.python的核心. 1.多态.封装.继承 多态,就算不知道变量所引用的类型,还是可以操作对象,根据类型 ...

  5. 《python基础教程(第二版)》学习笔记 类和对象(第7章)

    <python基础教程(第二版)>学习笔记 类和对象(第7章) 定义类class Person:    def setName(self,name):        self.name=n ...

  6. python学习笔记之module && package

    个人总结: import module,module就是文件名,导入那个python文件 import package,package就是一个文件夹,导入的文件夹下有一个__init__.py的文件, ...

  7. OpenCV之Python学习笔记

    OpenCV之Python学习笔记 直都在用Python+OpenCV做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看 到一本国外的新书< ...

  8. python学习笔记(五岁以下儿童)深深浅浅的副本复印件,文件和文件夹

    python学习笔记(五岁以下儿童) 深拷贝-浅拷贝 浅拷贝就是对引用的拷贝(仅仅拷贝父对象) 深拷贝就是对对象的资源拷贝 普通的复制,仅仅是添加了一个指向同一个地址空间的"标签" ...

  9. Python学习笔记基础篇——总览

    Python初识与简介[开篇] Python学习笔记——基础篇[第一周]——变量与赋值.用户交互.条件判断.循环控制.数据类型.文本操作 Python学习笔记——基础篇[第二周]——解释器.字符串.列 ...

  10. 【Python学习笔记之二】浅谈Python的yield用法

    在上篇[Python学习笔记之一]Python关键字及其总结中我提到了yield,本篇文章我将会重点说明yield的用法 在介绍yield前有必要先说明下Python中的迭代器(iterator)和生 ...

随机推荐

  1. 使用python进行pdf文件分割

    Python代码 import os from pyPdf import PdfFileWriter, PdfFileReader def split(pdf_file, delta, output_ ...

  2. 15 Scrapy框架之CrawlSpider

    一.简介 CrawlSpider其实是Spider的一个子类,除了继承到Spider的特性和功能外,还派生除了其自己独有的更加强大的特性和功能.其中最显著的功能就是”LinkExtractors链接提 ...

  3. ubuntu修改apt源

    1.修改之前首先做好备份 sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak 2.编辑源列表文件 sudo vim /etc/apt/sou ...

  4. Array.reduce()方法

    Array.reduce()方法是对数组的遍历,返回一个单个返回值   使用方法: Array.reduce((acc, cur, idx, src) => { }, initialValue) ...

  5. Delphi 子界类型

  6. Delphi Button组件

  7. Vi编辑器中查找替换

    1 第一个是替换当前行的yesterday为all 第二个是替换全局的 yesterday 为all :s/yesterday/all :s/yesterday/all/g

  8. Jenkins+GitHub 项目环境搭建和发布脚本(二)

    Jenkins+gitHub项目搭建配置 项目发布脚本 profilesScript.sh (支持不同环境配置文件) #!/bin/bash ACTIVE=$ JENKINS_PATH=/var/li ...

  9. spring常用的几个aware bean接口

    BeanNameAware 作用:让Bean获取自己在BeanFactory配置中的名字(根据情况是id或者name). Spring自动调用.并且会在Spring自身完成Bean配置之后,且在调用任 ...

  10. 清北学堂dp图论营游记day2

    上午讲数位dp和背包问题. 先讲背包: 完全背包:换了个顺序: 多重背包: 多重背包优化: 这样把每个物品分成这些组,那么把他们转变成不同的物品,就变成了01背包问题: 滑动窗口取最值问题.单调队列优 ...