Python入门:类与类的继承
类,是一些有共同特征和行为事物的抽象概念的总和。
1. 定义一个类:
我们使用class来定义一个类,和之前说过的定义函数用def类似。在类里面给变量赋值时,专业术语称之为类的属性。
比如拿可口可乐来举例:
class CocaCola:
formula = ['caffeine','sugar','water','soda']
# formula意为配方,给变量formula赋值
2. 类的实例化
上面定义好了类,接下来举实例
class CocaCola:
formula = ['caffeine','sugar','water','soda']
coke_for_me = CocaCola()
print(coke_for_me.formula)
左边是变量名coke_for_me,右边是类的名称CocaCola,看起来很像在给变量赋值,我们将其称为类的实例化。而被实例化后的对象,称之为类的实例。
3. 类属性的引用
在第2点类的实例化中,print时括号中用的是cake_for_me.formula,当输入符号点(.)时,Pycharm会自动联想出定义的类的属性,这就是类属性的引用。
4. 实例属性的引用
class CocaCola:
formula = ['caffeine','sugar','water','soda']
coke_for_China = CocaCola()
# 创建实例
coke_for_China.local_logo = '可口可乐'
# 创建实例属性
print(coke_for_China.local_logo)
5. 实例方法
之前讲字符串时有说过字符串的方法,这里类的实例也有方法可以用。在类的实例中使用的方法即函数,但我们称之为实例方法。
class CocaCola:
formula = ['caffeine','sugar','water','soda']
def drink(self):
# 定义方法,self指被创建的实例本身,这里即下面的coke
print('Cool!')
coke = CocaCola()
coke.drink()
# 调用实例方法
6. __init__()的使用
__init__()的神奇之处在于,当类中定义了它之后,在创建实例时,它能帮忙自动处理很多事情,比如新增实例属性。
之前在第4点中,我们是先创建实例,再创建实例属性,用__init__()的话可以直接新增实例属性,后面直接调用即可。
class CocaCola:
formula = ['caffeine','sugar','water','soda']
def __init__(self):
# init是单词initializ(初始化)的缩写
self.local_logo = '可口可乐'
coke = CocaCola()
print(coke.local_logo)
7. 类的继承
像可口可乐,除了我们知道的原味之外,还有32种口味,不含咖啡因的、无糖可乐、樱桃味、柠檬味、 香草味等,他们都继承可口可乐这个品牌。在类中也一样,有父类和子类,子类可以继承父类,称之为类的继承。
class CocaCola:
formula = ['caffeine','sugar','water','soda']
def __init__(self,coke_taste):
self.coke_name = coke_taste
def drink(self):
print('{}可乐的配方含有{} '.format(self.coke_name,self.formula))
class CaffeineFree(CocaCola):
# 继承父类CocaCola
formula = ['High Fructose Corn Syrup','Carbonated Water']
#无咖啡因可乐的配方
coke_a = CaffeineFree('无咖啡因')
# 给父类__init__中的coke_taste参数赋值CocaCola_Free
coke_a.drink()
关于类的简单介绍就到这里,后续会介绍如何使用第三方库。
操作环境:Python版本,3.6;PyCharm版本,2016.2;电脑:Mac
----- End -----
作者:杜王丹,微信公众号:杜王丹,互联网产品经理。

Python入门:类与类的继承的更多相关文章
- Python 入门基础20 --面向对象_继承、组合
今日内容 组合:自定义类的对象作为类的属性 继承:父类与子类.多继承 1.组合 将自定义类的对象作为类的属性 class Teacher: def __init__(self, name): self ...
- Python 入门 之 类的三大关系(依赖 / 组合/ 继承关系)
Python 入门 之 类的三大关系(依赖 / 组合/ 继承关系) 在面向对象的中,类与类之间存在三种关系:依赖关系.组合关系.继承关系. 1.依赖关系:将一个类的类名或对象当做参数传递给另一个函数被 ...
- python入门学习:8.类
python入门学习:8.类 关键点:类 8.1 创建和使用类8.2 使用类和实例8.3 继承8.4 导入类 8.1 创建和使用类 面向对象编程是最有效的软件编写方法之一.在面向对象编程中,你编写 ...
- Python 入门 之 类成员
Python 入门 之 类成员 1.类的私有成员: 私有: 只能自己拥有 以 __ 开头就是私有内容 对于每一个类的成员而言都有两种形式: - 公有成员,在任何地方都能访问 - 私有成员,只有在类的内 ...
- Python中的类、对象、继承
类 Python中,类的命名使用帕斯卡命名方式,即首字母大写. Python中定义类的方式如下: class 类名([父类名[,父类名[,...]]]): pass 省略父类名表示该类直接继承自obj ...
- python 零散记录(七)(下) 新式类 旧式类 多继承 mro 类属性 对象属性
python新式类 旧式类: python2.2之前的类称为旧式类,之后的为新式类.在各自版本中默认声明的类就是各自的新式类或旧式类,但在2.2中声明新式类要手动标明: 这是旧式类为了声明为新式类的方 ...
- Python学习笔记008_类_对象_继承_组合_类相关的BIF
# 对象 = 属性 + 方法>>> # Python中的类名约定以大写字母开始>>> # tt = Turtle() 这就是创建类实例的方法,其它语言用new ,它 ...
- python 入门基础24 元类、单例模式
内容目录: 一.元类 二.单例模式 一.元类 1 什么是元类: 源自一句话:在python中,一切皆对象,而对象都是由类实例化得到的 class OldboyTeacher: def __init__ ...
- Python中新式类 经典类的区别(即类是否继承object)
首先什么是新式类 经典类呢: #新式类是指继承object的类 class A(obect): ........... #经典类是指没有继承object的类 class A: ........... ...
- Python入门之面向对象编程(二)python类的详解
本文通过创建几个类来覆盖python中类的基础知识,主要有如下几个类 Animal :各种属性.方法以及属性的修改 Dog :将方法转化为属性并操作的方法 Cat :私人属性讲解,方法的继承与覆盖 T ...
随机推荐
- 洛谷 P1350 车的放置
洛谷 P1350 车的放置 题目描述 有下面这样的一个网格棋盘,a,b,c,d表示了对应边长度,也就是对应格子数. 当a=b=c=d=2时,对应下面这样一个棋盘 要在这个棋盘上放K个相互不攻击的车,也 ...
- .net core中使用缓存(cache)
官方文档:https://docs.microsoft.com/en-us/aspnet/core/performance/caching/memory?view=aspnetcore-2.2#use ...
- java 继承类之后,访问不到超类的属性的原因及解决方法
是因为超类里的属性没有加上public关键字 解决方法: 超类和超类里的属性或者方法如果想被其他包下的方法调用,就必须全部加上public权限,即设置为公开访问 例: @Controller publ ...
- mongodb原生node驱动
写在前面 最近读<node.js学习指南>,对于mongodb没有介绍太多的工作原理,但是对于一个前端开发者,即使你还没有用过这种数据库也可以让你很好的理解和使用 一本非常好的 ...
- Jenkins部署资料
http://www.cnblogs.com/gaohongchen01/p/5058928.html https://www.javacodegeeks.com/2015/04/jenkins-ho ...
- MySQL数据库语法(一)
MySQL数据库语法 数据库管理系统(DBMS)的概述 什么是DBMS:数据的仓库 方便查询 可存储的数据量大 保证数据的完整.一致 安全可靠 DBMS的发展:今天主流数据库为关系型数据库管理系统(R ...
- [面试]CVTE 2019提前批 Windows应用开发一面
7.30接到面试电话问有没有时间进行一个20分钟左右的电话面试,不巧当时要去赶火车,就约到了两天后. 8.1还是同一个面试官打来电话 首先介绍项目吧,第一场面试,项目准备的也不怎么充分,讲了一个HAL ...
- 【坚持】Selenium+Python学习记录 DAY10
2018/05/31-2018/06/1 [官方文档](https://www.jetbrains.com/help/pycharm/set-up-a-git-repository.html) 通过p ...
- 持续更新 | 想不到的key
前言 开坑写一些我认为比较巧妙的东西想不到的东西 正文 判断回文串的时候 考虑一下枚举中心位往两边扩展 最大子矩阵与单调栈 遇难则反系列 算合法可以转换成算不合法.同理,不合法转换成合法计算有时也会简 ...
- thinkphp 3.x下的任意文件包含(有条件)分析
漏洞原理 实现自己的模版引擎不当,在模版渲染的情况下存在任意变量覆盖漏洞.. 漏洞详情 漏洞位置1 ThinkPHP/Library/Think/View.class.php 需要修改配置文件 指定T ...