类,是一些有共同特征和行为事物的抽象概念的总和。

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入门:类与类的继承的更多相关文章

  1. Python 入门基础20 --面向对象_继承、组合

    今日内容 组合:自定义类的对象作为类的属性 继承:父类与子类.多继承 1.组合 将自定义类的对象作为类的属性 class Teacher: def __init__(self, name): self ...

  2. Python 入门 之 类的三大关系(依赖 / 组合/ 继承关系)

    Python 入门 之 类的三大关系(依赖 / 组合/ 继承关系) 在面向对象的中,类与类之间存在三种关系:依赖关系.组合关系.继承关系. 1.依赖关系:将一个类的类名或对象当做参数传递给另一个函数被 ...

  3. python入门学习:8.类

    python入门学习:8.类 关键点:类 8.1 创建和使用类8.2 使用类和实例8.3 继承8.4 导入类 8.1 创建和使用类   面向对象编程是最有效的软件编写方法之一.在面向对象编程中,你编写 ...

  4. Python 入门 之 类成员

    Python 入门 之 类成员 1.类的私有成员: 私有: 只能自己拥有 以 __ 开头就是私有内容 对于每一个类的成员而言都有两种形式: - 公有成员,在任何地方都能访问 - 私有成员,只有在类的内 ...

  5. Python中的类、对象、继承

    类 Python中,类的命名使用帕斯卡命名方式,即首字母大写. Python中定义类的方式如下: class 类名([父类名[,父类名[,...]]]): pass 省略父类名表示该类直接继承自obj ...

  6. python 零散记录(七)(下) 新式类 旧式类 多继承 mro 类属性 对象属性

    python新式类 旧式类: python2.2之前的类称为旧式类,之后的为新式类.在各自版本中默认声明的类就是各自的新式类或旧式类,但在2.2中声明新式类要手动标明: 这是旧式类为了声明为新式类的方 ...

  7. Python学习笔记008_类_对象_继承_组合_类相关的BIF

    # 对象 = 属性 + 方法>>> # Python中的类名约定以大写字母开始>>> # tt = Turtle() 这就是创建类实例的方法,其它语言用new ,它 ...

  8. python 入门基础24 元类、单例模式

    内容目录: 一.元类 二.单例模式 一.元类 1 什么是元类: 源自一句话:在python中,一切皆对象,而对象都是由类实例化得到的 class OldboyTeacher: def __init__ ...

  9. Python中新式类 经典类的区别(即类是否继承object)

    首先什么是新式类 经典类呢: #新式类是指继承object的类 class A(obect): ........... #经典类是指没有继承object的类 class A: ........... ...

  10. Python入门之面向对象编程(二)python类的详解

    本文通过创建几个类来覆盖python中类的基础知识,主要有如下几个类 Animal :各种属性.方法以及属性的修改 Dog :将方法转化为属性并操作的方法 Cat :私人属性讲解,方法的继承与覆盖 T ...

随机推荐

  1. WPF 扩大,回弹效果

    原文:WPF 扩大,回弹效果 <Window x:Class="Fish.AccountBook.View.Test.PanelWindow" xmlns="htt ...

  2. UEditor富文本web编辑器

    UEditor是由百度web前端研发部开发所见即所得,前几天把公司原来的富文本编辑器换成百度的了,可以把秀米制作的样式 整个复制到文本编辑器中,原汁原味... 到官网看了文档,其实很简单,就简单的配置 ...

  3. rabbitmq的安装和使用

    一.RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件).RabbitMQ服务器是用Erlang语言编写的,而群集和故障转移是构建在开放电信平台框架上的.所有 ...

  4. java实现利用httpclient访问接口

    HTTP协议时Internet上使用的很多也很重要的一个协议,越来越多的java应用程序需要通过HTTP协议来访问网络资源. HTTPClient提供的主要功能: 1.实现了所有HTTP的方法(GET ...

  5. python实现屏保计时器

    什么都不说先上图吧,Python 初学者实现屏保计时器 原理:利用 Python turtle 库实现快速画图,每隔一秒钟擦除屏幕,然后获得电脑实时时间,再次画图,呈现动态时间. 关于数字如果画,可以 ...

  6. RegExp正则匹配模式汇总

    正则表达式提供另一种强大的文本搜索和处理方式,对于正则表达式,不同语言有着不同的实现,JavaScript采用的Perl5的语法.对于极少数匹配模式是简单的全字符文本的情况,我们往往会采用indexO ...

  7. 手动搭建openstack的痛苦经历

    openstack真的是一个十分痛苦的东西,好在有自动部署工具,虽然有自动部署工具可以方便我们部署使用,但是学习的话,第一次最好手动部署,因为手动部署更能我们了解openstack的工作流程和各组建之 ...

  8. JUC——阻塞队列

    Queue是一个队列,而队列的主要特征是FIFO先进先出,要实现生产者与消费者模型,也可以采用队列来进行中间的缓冲读取,好处是:生产者可以一直不停歇的生产数据. BlockingQueue是Queue ...

  9. 百道Python入门级练习题(新手友好)第一回合——矩阵乘法

    题目描述 [问题描述] 编写程序,完成3*4矩阵和4*3整数矩阵的乘法,输出结果矩阵. [输入形式] 一行,供24个整数.以先行后列顺序输入第一个矩阵,而后输入第二个矩阵. [输出形式] 先行后列顺序 ...

  10. GodMode | Windows上帝模式

    最近在网上学习到了一些Windows的隐藏功能,今天我就来说说GodMode模式吧. 借鉴:https://jingyan.baidu.com/article/90bc8fc853c38bf65264 ...