通过前面章节的学习,我们已经学会如何定义一个类,但要想使用它,必须创建该类的对象。
创建类对象的过程,又称为类的实例化。
对已定义好的类进行实例化,其语法格式如下:
定义类时,如果没有手动添加 __init__() 构造方法,又或者添加的 __init__() 中仅有一个 self 参数,则创建类对象时的参数可以省略不写。
例如,如下代码创建了名为 CLanguage 的类,并对其进行了实例化:
# 下面定义了2个类变量 #下面定义 2 个实例变量
在上面的程序中,由于构造方法除 self 参数外,还包含 2 个参数,且这 2 个参数没有设置默认参数,因此在实例化类对象时,需要传入相应的 name 值和 add 值(self 参数是特殊参数,不需要手动传值,Python 会自动传给它值)。
类变量和实例变量,简单地理解,定义在各个类方法之外(包含在类中)的变量为类变量(或者类属性),定义在类方法中的变量为实例变量(或者实例属性),二者的具体区别和用法可阅读《》
定义的类只有进行实例化,也就是使用该类创建对象之后,才能得到利用。总的来说,实例化后的类对象可以执行以下操作:
使用已创建好的类对象访问类中实例变量的语法格式如下:
使用类对象调用类中方法的语法格式如下:
对象名.方法名(参数)
注意,对象名和变量名以及方法名之间用点 "." 连接。
例如,下面代码演示了如何通过 clanguage 对象调用类中的实例变量和方法:
#输出name和add实例变量的值
Python 支持为已创建好的对象动态增加实例变量,方法也很简单,举个例子:
# 第一个参数已经绑定了,无需传入
可以看到,由于使用 MethodType 包装 info() 函数时,已经将该函数的 self 参数绑定为 clanguage,因此后续再使用 info() 函数时,就不用再给 self 参数绑定值了。
要么这个问题的答案会起作用,要么我读到你不需要真正说出他们的名字。。。所以我试了一下:
Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的。本章节我们将详细介绍Python的面向对象编程。
如果你以前没有接触过面向对象的编程语言,那你可能需要先了解一些面向对象语言的一些基本特征,在头脑里头形成一个基本的面向对象的概念,这样有助于你更容易的学习Python的面向对象编程。
接下来我们先来简单的了解下面向对象的一些基本特征。
使用 class 语句来创建一个新类,class 之后为类的名称并以冒号结尾:
'类的帮助信息' #类文档字符串
类的帮助信息可以通过"
__foo__: 定义的是特殊方法,一般是系统定义名字 ,类似 __init__() 之类的。
_foo: 以单下划线开头的表示的是 protected 类型的变量,即保护类型只能允许其本身与子类进行访问,不能用于 from module import *
__foo: 双下划线的表示的是私有类型(private)的变量, 只能是允许这个类本身进行访问了。
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。