类和对象

1、类和对象

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

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

在现实世界中:先有一个个具体存在的对象,而后随着人类文明的发展才了分类的概念,既然现实世界中有类这个概念,Python程序中也必定有类这个概念,可是在Python程序中:必须先定义类,而后调用类来产生对象。ui

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

2.1 定义对象

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

  • 对象1:
    • 特征:
      • 学校='oldboy'
      • 姓名='耗哥'
      • 年龄=18
      • 性别='male'
    • 技能:
      • 选课
  • 对象2:
    • 特征:
      • 学校='oldboy'
      • 姓名='猪哥'
      • 年龄=17
      • 性别='male'
    • 技能:
      • 选课
  • 对象3:
    • 特征:
      • 学校='oldboy'
      • 姓名='帅翔'
      • 年龄=19
      • 性别='female'
    • 技能:
      • 选课

2.2 定义对象

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

  • 老男孩学生类:
    • 类似的特征:
      • 学校='oldboy'
    • 类似的技能
      • 选课

3、程序中定义类和对象

3.1 定义类

# 注意类中定义变量使用驼峰体
class OldboyStudent():
    school = 'oldboy'

    def choose_course(self):
        print('is choosing course')
  • 曾经定义函数,函数只检测语法,不执行代码,可是定义类的时候,类体代码会在类定义阶段就马上执行,而且会产生一个类的名称空间,也就是说类的自己其实就是一个容器/名称空间,是用来存放名字的,这是类的用途之一

83-类与对象-名称空间.jpg?x-oss-process=style/watermark

print(OldboyStudent.__dict__)
{'__module__': '__main__', 'school': 'oldboy', 'choose_course': <function OldboyStudent.choose_course at 0x10d653ae8>, '__dict__': <attribute '__dict__' of 'OldboyStudent' objects>, '__weakref__': <attribute '__weakref__' of 'OldboyStudent' objects>, '__doc__': None}
print(OldboyStudent.__dict__['school'])
oldboy
print(OldboyStudent.__dict__['choose_course'])
<function OldboyStudent.choose_course at 0x10d653ae8>
try:
    OldboyStudent.__dict__['choose_course']()
except Exception as e:
    print('error:', e)
error: choose_course() missing 1 required positional argument: 'self'
print(OldboyStudent.school)
oldboy
OldboyStudent.choose_course(111)
is choosing course
print(OldboyStudent.choose_course)
<function OldboyStudent.choose_course at 0x10d653ae8>
OldboyStudent.__dict__['choose_course']
<function __main__.OldboyStudent.choose_course(self)>
OldboyStudent.country='China'
OldboyStudent.__dict__['country']
'China'
OldboyStudent.country='CHINA'
OldboyStudent.__dict__['country']
'CHINA'
del OldboyStudent.school
print(OldboyStudent.__dict__)
{'__module__': '__main__', 'school': 'oldboy', 'choose_course': <function OldboyStudent.choose_course at 0x10d653ae8>, '__dict__': <attribute '__dict__' of 'OldboyStudent' objects>, '__weakref__': <attribute '__weakref__' of 'OldboyStudent' objects>, '__doc__': None, 'country': 'CHINA'}

3.2 定义对象

  • 调用类便可产生对象,调用类的过程,又称为类的实例化,实例化的结果称为类的对象/实例

83-类与对象-实例化.jpg?x-oss-process=style/watermark

stu1=OldboyStudent() # 调用类会获得一个返回值,该返回值就是类的一个具体存在的对象/实例
print(stu1.school)
oldboy
stu2=OldboyStudent() # 调用类会获得一个返回值,该返回值就是类的一个具体存在的对象/实例
print(stu2.school)
oldboy
stu3=OldboyStudent() # 调用类会获得一个返回值,该返回值就是类的一个具体存在的对象/实例
stu3.choose_course()
is choosing course
相关文章
相关标签/搜索