类与对象
-
类与对象的概念
- 上节我们已经知道,对象是特征和技能的结合体,那类呢?从我们人这个对象的例子来看,每个对象都有自己的姓名和行为方式。类则是一系列相似特征和技能的结合体,
- 先有对象还是先有类?
- 在现实生活中:肯定是先有对象再有类,对象是具体的某个事物,真实存在的,而类是抽象的。仅仅是一个概念。比如,我们可以叫一个人的姓名就知道这个人是谁,而无法叫一个人类来代表某个人。
- 在程序世界中:相反,我们必须先定义类,再实例化对象。比如:女娲造人这个神话故事,有一个泥娃娃模型(类)之后,可以造无数个人(对象)
-
类的使用
- 创建类以及引用类的属性
#! /usr/bin/env python # -*- coding: utf-8 -*- # __author__ = "ziya" # Date: 2018-08-25 class LuffyStudents: """ 路飞学生类 """ school = 'Luffy' # 数据属性 def learn(self): # 函数属性 print('学生在学习') def eat(self): print('学生在吃东西') print('=======run========') # 查看类的名称空间 print(LuffyStudents.__dict__) print(LuffyStudents.__dict__['school']) print(LuffyStudents.__dict__['learn']) # 查 print('路飞学校的名称:',LuffyStudents.school) print('类的名称:',LuffyStudents.__name__) # 增 LuffyStudents.country = 'China' print('路飞所在国家:', LuffyStudents.country) # 删 del LuffyStudents.country # 改 LuffyStudents.school = 'OldBoy' print('路飞学校的名称:', LuffyStudents.school)
-
对象的使用
- 调用类,也就是通过实例化类得到一个对象。
#! /usr/bin/env python # -*- coding: utf-8 -*- # __author__ = "ziya" # Date: 2018-08-25 class LuffyStudent: school = 'Luffy' def __init__(self, name, sex, age): # __init__()方法用来为对象定制对象自己的独有特征 print('开始实例化对象:初始化参数(%s---%s---%s)' % (name, sex, age)) self.name = name self.sex = sex self.age = age def learn(self): print('学习') def eat(self): print('吃东西') def sleep(self): print('睡觉') # 实例化的对象 s1 = LuffyStudent('王青', 'girl', 18) s2 = LuffyStudent('李三炮', 'boy', 38) ''' 定义了__init__()方法后,实例化的步骤 1、先产生一个空对象s1、s2 2、LuffyStudent.__init__(s1,'王青','girl',18) ''' print('对象的名称空间', s1.__dict__) print('对象的名称空间', s2.__dict__) # 查 print(s1.name, s2.name) print(s1.sex, s2.sex) print(s1.age, s2.age) # 改 s1.name = '小喵喵' # 增加 s2.addr = 'earth' # 删除 del s1.sex print(s1.__dict__)