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

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. BZOJ2428_均分数据_KEY

    题目传送门 这道题可以用C++的random_shuffle屮过去. random数列插入顺序,每次都插入数值和最小的那一组. #include <cmath> #include < ...

  2. v$pwfile_user表

    SQL> select * from v$pwfile_users;select * from v$pwfile_users; USERNAME SYSDB SYSOP SYSAS------- ...

  3. python基础学习1-字典的使用

    id_db={1:"wh" ,2:"wx" ,3:{1:"a",2:"b",3:"c"} ,4:[& ...

  4. django-groundwork

    我的环境是windows7 + python34 + django1.8 下面两篇文章提到了django的scaffold,感觉是一个挺不错的功能: Django实战(3):Django也可以有sca ...

  5. Deep Learning综述[下]

    Image understanding with deep convolutional networks 直到2012年ImageNet大赛之前,卷积神经网络一直被主流机器视觉和机器学习社区所遗弃.2 ...

  6. 一维码EAN 13简介及其解码实现(zxing-cpp)

    一维码EAN 13:属于国际标准条码, 由13个数字组成,为EAN的标准编码型式(EAN标准码). 依结构的不同,EAN条码可区分为: 1.  EAN 13码: 由13个数字组成,为EAN的标准编码型 ...

  7. 4513: [Sdoi2016]储能表

    4513: [Sdoi2016]储能表 链接 分析: 数位dp. 横坐标和纵坐标一起数位dp,分别记录当前横纵坐标中这一位是否受n或m的限制,在记录一维表示当前是否已经大于k了. 然后需要两个数组记录 ...

  8. 2597: [Wc2007]剪刀石头布

    2597: [Wc2007]剪刀石头布 链接 分析: 费用流. 首先转化一下问题,整张图最优的情况是存在$C_n^3$个,即任意3个都行,然后考虑去掉最少不满足的三元环. 如果u赢了v,u向v连一条边 ...

  9. Security1:登录和用户

    授予权限的思路,可以用一句话来概括,那就是:授予 Principal 操作 Securable 的 Permission,在多数文档中,把 Principal 翻译为安全主体,Securable翻译为 ...

  10. Oracle安装到Maven本地仓库

    1.由于Maven的特性,并且之前的IDE环境已帮我们集成了Maven.而现在我们需要手动安装MVN本地仓库到电脑. 将mvn绿色安装包bin路径配置到系统环境变量Path中 验证命令: mvn –v ...