Python中类的是把数据和功能集合在一起的一种数据类型。
1 类的定义
定义类的语法格式如下所示:
class ClassName:
<statement-1>
...
<statement-N>
其中,class是定义类的关键字,ClassName表示类名,之后是冒号,然后在定义类的范围内statement-1到statement-N表示定义类的语句,里面包含了类的数据和功能。
2 类的数据与功能
类的主要特性是把数据和功能集成在一起,这里的数据就是类的变量,而功能就是类的方法。Python类的变量和方法主要分为两种:一种是类的变量和方法,另一种是实例的变量和方法。
2.1 类的变量与方法
定义一个名为MyClass的类,代码如下所示:
class MyClass:
i = 1
def myfunc():
print('Hello')
从以上代码可以看出,MyClass类包含一个类变量i和一个类方法myfunc。在调用时需要使用“类名.变量名”或者“类名.方法名”的方式,代码如下所示。
print(MyClass.i)
MyClass.myfunc()
运行程序,可以输出“1”和“Hello”。
可以通过“类名.变量名”的方式修改类的变量,代码如下所示:
MyClass.i = 2
print(MyClass.i)
此时的输出是“2”。
2.2 实例的变量与方法
类是一种数据类型,可以定义该类(数据类型)的多个变量,定义类的变量的过程叫做“实例化”,定义的类变量叫做“实例”。
c1 = MyClass()
此时,c1就是MyClass类的一个实例。可以通过定义MyClass类的__init__()方法对不同的类进行不同的初始化操作。
class MyClass:
i = 1
def myfunc():
print('Hello')
def __init__(self, num):
self.j = num
从以上代码可知,MyClas增加了一个名为__init__()的方法,该方法有两个参数,一个是self,表示调用该方法的实例对象,另外一个参数是num,该参数在调用__init__()函数时传入。
在定义类的实例时,会自动调用该类的__init__()方法,而创建的变量作为该函数的第一个参数,即参数self的值,类名后的括号中的参数为__init__()方法的其他参数值。代码如下所示:
c1 = MyClass(10)
以上代码定义了MyClass类的一个实例,在使用该代码创建实例时,自动调用了MyClass类的__init__()函数,此时__init__()函数的参数self的值是“c1”,参数num的值是“10”。执行MyClass类的__init__()方法,将实例c1的变量j的值设置为10。使用实例变量的格式是“实例名.变量名”,执行如下代码:
print(c1.j)
输出结果为“10”。MyClass类定义中的变量j是“实例变量”,对于“实例变量”,不同的实例,可以拥有不同的值。例如:
c2 = MyClass(100)
此时,c2也是MyClass的一个实例,执行如下代码:
print(c2.j)
输出的结果为“100”。