类
类是抽象的模板,实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同。
通过类定义数据类型的属性(数据)和方法(行为),属性用来描述数据,方法(即函数)用来描述这些数据相关的操作。也就是说,“类将行为和状态打包在一起”。
python中一切皆对象,类也称为“类对象”,类的实例也称为“实例对象”。
一个类创建实例对象时,每个对象会共享这个类的行为(类中定义的方法),但会有自己的属性值(不共享状态)。更具体一点:“方法代码是共享的,属性数据不共享”。
类的定义:
class 类名:
类体
class Person:
count = 0 #类属性
#构造器
def __init__(self,name,age):
self.name = name #实例属性
self.age = age
Person.count += 1
#实例方法
def say(self):
print('我叫{0},今年{1}岁。'.format(self.name,self.age))
# 创建实例对象
p1 = Person('张三',12)
p1.say()
p2 = Person('李四',18)
p2.say()
print('共创建了{0}个对象'.format(Person.count))
一个 Python 对象包含如下部分:
1. id(identity 识别码)
2. type(对象类型)
3. value(对象的值)
(1) 属性(attribute)
(2) 方法(method)
创建实例对象,我们需要定义构造函数__init__()方法。构造方法用于执行“实例对象的初始化工作”,即对象创建后,初始化当前对象的相关属性,无返回值,如上示例中初始化实例对象的name与age属性。如果我们不定义__init__方法,系统会提供一个默认的__init__方法。如果我们定义了带参的__init__方法,系统不创建默认的__init__方法。通过“类名(参数列表)”来调用构造函数。调用后,将创建好的对象返回给相应的变量。
self相当于java中的this,指代当前创建的实例对象。名字任意,一般为self。
实例
实例属性
从属于实例对象的属性。一般在__init__方法中定义,self.实例属性名 = 初始值。