078 类和对象

1、类和对象

  • 类的意思:种类、分类、类别

对象是特征与技能的结合体,我可能有身高体重、而你也有身高体重,因此你会说你像我,可是你必定不会说你像阿猫阿狗。而且我和你其实就能够说成是一类,而你和选课系统不能说是一类,所以给出类的定义:类就是一系列对象类似的特征与技能的结合体。python

  • 在现实世界中:先有一个个具体存在的对象,而后随着人类文明的发展才了分类的概念函数

  • 既然现实世界中有类这个概念,Python程序中也必定有类这个概念,可是在Python程序中:必须先定义类,而后调用类来产生对象。
  • 类:一切具备相同属性和方法的对象组成的
  • 对象:含有属性和方法学习

2、现实世界中定义类和对象

2.1定义对象

拿咱们的选课系统来讲的话,咱们先总结一套现实世界中的学生对象code

  • 对象1:
    • 特征:
      • 学校 = ’xiwangzhongxue‘
      • 姓名 = ’小明‘
      • 年龄 = 18
      • 性别 = ’male‘
    • 技能:
      • 选课
      • 学习
  • 对象2:
    • 特征:
      • 学校 = ’xiwangzhongxue‘
      • 姓名 = ’小红‘
      • 年龄 = 18
      • 性别 = ’male‘
    • 技能:
      • 选课
      • 学习

2.2定义类

站在将来选课系统的角度,咱们还能够总结现实世界中的学生类:对象

  • 但愿中学学生类:
    • 类似的特征:
      • 学校='xiwangzhongxue'
    • 类似的技能
      • 选课
      • 学习

3、程序中定义类和对象

3.1定义类

  • 曾经定义函数,函数只检测语法,不执行代码,可是定义类的时候,类体代码会在类定义阶段就马上执行,而且会产生一个类的名称空间,也就是说类的自己其实就是一个容器/名称空间,是用来存放名字的,这是类的用途之一
  • 定义类名时咱们推荐使用驼峰体
    • 关键字class 类名:
class Students:
    # 定义对象相同的属性
    shool = 'xiwangzhongxue'
    
    # 定义对象想的方法
    def choice(self):
        print('选课。。。。')
        
    def study(self):
        print('学习。。。。')
  • 使用类
    • 类名()
    • Student()

3.2定义对象

  • 调用类便可产生对象,调用类的过程,又称为类的实例化,实例化的结果称为类的对象/实例
  • 对象名 = 类名()
stu1 = Student() # 这个时候只是生成了一个对象stu1,对象自己没有任何属性
print(stu1) # 打印的只是stu1对象在定义的时候生成的内存地址

<main.Student object at 0x000001EE24F2C198>内存

4、类和对象的使用

4.1获取类的属性和方法

  • __dict__方法
  • 返回的时一个字典(文件执行的模式、属性,方法(函数)的地址)
print(Student.__dict__)

{'module': 'main', 'school': 'oldboy', 'func1': <function Student.func1 at 0x000001EE25195620>, 'func2': <function Student.func2 at 0x000001EE2C0C59D8>, 'dict': <attribute 'dict' of 'Student' objects>, 'weakref': <attribute 'weakref' of 'Student' objects>, 'doc': None}it

4.2获取对象的属性和方法

  • __dict__方法
  • 返回是个字典
print(stu1.__dict__) # 返回的是一个空的字典,由于咱们在定义这个stu1对象的时候,没有给它定义其余的属性

{}io

4.3类使用方法和对象使用类的方法的区别

  1. 类使用方法
  • 其实就是在调用函数
  • 类使用方法时,调用类的方法的时候必须向函数方法传进对应的参数
Student.choice(stu1) # 函数的第一个参数则是定义的对象名

选课。。。。function

  1. 对象使用类的方法
  • 调用类里的方法
  • 对象使用方法时,调用类不须要向方法传第一个参数
stu1.choice():

选课。。。。class

5、对象的属性赋值

5.1经过对象自身来赋值属性

stu1.name = '小明'
print(stu1.__dict__)# 返回一个字典,字典包含的是对象本身的属性集合
print(stu1.name) # 返回对象本身name的属性

{’name‘:’小明‘}

小明

5.2经过类中的__init__的方法

# 定义一个学生类
class Student:
    # 定义类的相同属性
    school = '但愿中学'

    # 定义类的相同方法
    # 定义类的属性方法
    def __init__(self,name):
        self.name = name

    def choice(self):
        print('选课...')

    def study(self):
        print('学习....')
        
 
# 实例化一个对象
stu1 = Student('小明')# ()括号里传的是对象stu2的name属性值为'小明'
print(stu1.__dict__)# 打印对象stu1的属性集合
print(stu1.name)# 打印stu1的name的属性值
相关文章
相关标签/搜索