002---类与对象

类与对象
  • 类与对象的概念

    • 上节我们已经知道,对象是特征和技能的结合体,那类呢?从我们人这个对象的例子来看,每个对象都有自己的姓名和行为方式。类则是一系列相似特征和技能的结合体,
    • 先有对象还是先有类?
      • 在现实生活中:肯定是先有对象再有类,对象是具体的某个事物,真实存在的,而类是抽象的。仅仅是一个概念。比如,我们可以叫一个人的姓名就知道这个人是谁,而无法叫一个人类来代表某个人。
      • 在程序世界中:相反,我们必须先定义类,再实例化对象。比如:女娲造人这个神话故事,有一个泥娃娃模型(类)之后,可以造无数个人(对象)
  • 类的使用

    • 创建类以及引用类的属性
    #! /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__)
    
    
    
原文地址:https://www.cnblogs.com/xjmlove/p/10319012.html