为了能够封装细节,需要抽象出对象。对象只是数据(变量)和作用于这些数据的方法(函数)的集合。类本质上是用于创建对象的模板。
就好像函数定义以关键字def开头一样,在Python中,可以使用关键字class定义一个类。
这是一个简单的类定义。
一个类创建一个新的本地命名空间,其中定义了所有属性。属性可以是数据或函数。其中还有一些特殊属性,这些属性以双下画线(__)开头,例如,__doc__为我们提供了该类的文档字符串,示例代码如下:
可以根据类模板来创建对象,创建对象的过程类似于函数调用。
ob = MyClass()
这将创建一个名为ob的新实例对象。我们可以使用对象名称前缀来访问对象的属性。
ob.func() #输出: Hello
您可能已经注意到了类中函数定义的self参数,但是我们将该方法简单地称为ob.func()而没有任何参数,它仍然奏效。这是因为,只要对象调用其方法,对象本身就作为第一个参数传递。因此,ob.func()转换为MyClass.func(ob)。
方法与对象实例或类相关联,函数则不是。当Python调度(调用)一个方法时,它会将该调用的第一个参数绑定到相应的对象引用(对于大多数方法,这个参数通常称为self)。
在Python中,除了用户定义的属性外,每个对象都有一些默认的属性和方法。要查看对象的所有属性和方法,可以使用内置的dir()函数。执行以下脚本可以查看ob对象的所有属性:
在Python中,静态变量是在类的所有实例之间共享的变量,而不是每个实例唯一的变量,它有时也被称为类变量,因为它属于类本身而不是类的任何特定实例。
静态变量通常用一个值初始化,就像实例变量一样,但是可以通过类本身而不是通过实例来访问和修改它们,示例代码如下: