在面向对象的编程中,总是离不开类和对象这两个概念,那么具体什么是类什么是对象呢,一直是一个很难解释的问题,简单来说类是一类事物的或具有相似特征的事物的抽象,它是抽象的,不能具体话,而实例则是类的具体化,他是一个具体的东西,是真实存在的一个事物或者一种群体。
简单的用理论性的语言来描述类和实例的概念有点空洞,还是结合一下具体的例子来看吧。
比如学校里面的学生为例,学生具有姓名、年龄、班级的相似的特征,因此我们可以将学生抽象为一个类,学生的姓名、年龄、班级为类的实例属性。
1、Python中定义类和创建实例
Python中通过class关键字创建类,类名一般要求大写,自己创建的类一般要继承object类,具体的创建语句如下所示:
#创建类
class Student(object):
pass
#创建实例
tom = Student()
lili = Student()
2、实例属性和类
上面创建的是一个空类,里面没有任何的内容。下面在类中添加一些属性,在类中的属性分为实例属性和类属性,一般来说实例属性是每个实例都有的且属性的值一般不同,每个实例的类属性是相同的。
class Student(object):
school_name = '****一中'
def __init__(self, classroom, name, age):
self.classroom = classroom
self.name = name
self.age = age
tom = Student('No1','tom','15')
lili = Student('No1','lili','12')
print(tom.school_name,tom.classroom,tom.name,tom.age)
print(lili.school_name,lili.classroom,lili.name,lili.age)
在Student类中 school_name为类属性,而classroom,name,age为实例属性,实例属性需要在创建实例的时候一并进行初始化,而类属性在创建类的时候进行初始化,在创建实例的时候不需要初始化。
输出结果如下所示: