目录
* 一、类和对象 <https://www.cnblogs.com/nickchen121/p/10982270.html#一类和对象>
* 二、现实世界中定义类和对象
<https://www.cnblogs.com/nickchen121/p/10982270.html#二现实世界中定义类和对象>
* 2.1 定义对象 <https://www.cnblogs.com/nickchen121/p/10982270.html#定义对象>
* 2.2 定义对象 <https://www.cnblogs.com/nickchen121/p/10982270.html#定义对象-1>
* 三、程序中定义类和对象 <https://www.cnblogs.com/nickchen121/p/10982270.html#三程序中定义类和对象>
* 3.1 定义类 <https://www.cnblogs.com/nickchen121/p/10982270.html#定义类>
* 3.2 定义对象 <https://www.cnblogs.com/nickchen121/p/10982270.html#定义对象-2>
一、类和对象
* 类的意思:种类、分类、类别
对象是特征与技能的结合体,我可能有身高体重、而你也有身高体重,所以你会说你像我,但是你一定不会说你像阿猫阿狗。并且我和你其实就可以说成是一类,而你和选课系统不能说是一类,因此给出类的定义:类就是一系列对象相似的特征与技能的结合体。
在现实世界中:先有一个个具体存在的对象,然后随着人类文明的发展才了分类的概念,既然现实世界中有类这个概念,Python程序中也一定有类这个概念,但是在Python程序中:必须先定义类,然后调用类来产生对象。
二、现实世界中定义类和对象
2.1 定义对象
就拿未来我们的选课系统来讲,我们先总结一套现实世界中的学生对象:
* 对象1:
* 特征:
* 学校='oldboy'
* 姓名='耗哥'
* 年龄=18
* 性别='male'
* 技能:
* 选课
* 对象2:
* 特征:
* 学校='oldboy'
* 姓名='猪哥'
* 年龄=17
* 性别='male'
* 技能:
* 选课
* 对象3:
* 特征:
* 学校='oldboy'
* 姓名='帅翔'
* 年龄=19
* 性别='female'
* 技能:
* 选课
2.2 定义对象
站在未来选课系统的角度,我们还可以总结现实世界中的学生类:
* 老男孩学生类:
* 相似的特征:
* 学校='oldboy'
* 相似的技能
* 选课
三、程序中定义类和对象
3.1 定义类
# 注意类中定义变量使用驼峰体 class OldboyStudent(): school = 'oldboy' def
choose_course(self): print('is choosing course')
*
曾经定义函数,函数只检测语法,不执行代码,但是定义类的时候,类体代码会在类定义阶段就立刻执行,并且会产生一个类的名称空间,也就是说类的本身其实就是一个容器/名称空间,是用来存放名字的,这是类的用途之一
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 定义对象
* 调用类即可产生对象,调用类的过程,又称为类的实例化,实例化的结果称为类的对象/实例
stu1=OldboyStudent() # 调用类会得到一个返回值,该返回值就是类的一个具体存在的对象/实例 print(stu1.school)
oldboy stu2=OldboyStudent() # 调用类会得到一个返回值,该返回值就是类的一个具体存在的对象/实例
print(stu2.school) oldboy stu3=OldboyStudent() #
调用类会得到一个返回值,该返回值就是类的一个具体存在的对象/实例 stu3.choose_course() is choosing course
热门工具 换一换