python-面向对象(一)
2021/12/2 20:07:14
本文主要是介绍python-面向对象(一),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
目录- 1. 面向对象由来
- 2. 面向对象编程
- 3. 类和对象
- 4. 定制对象独有特征
- 5. __init__方法
- 6. 属性的查找顺序
1. 面向对象由来
1.面向过程编程:定义变量,定义函数 优点:复杂的问题流程化,进而简单化 缺点:牵一发而动全身,扩展性差,可维护性差 应用场景:对扩展性要求不高的地方 2.面向对象编程:定义一个类,类有属性(变量、特征),有方法(函数,技能) 优点:扩展性强,可维护性强 缺点:编程复杂度高 应用场景:对扩展性要求较高的地方
2. 面向对象编程
1 面向过程变成的核心是过程二字,过程指的是解决问题的步骤,即先干什么再干什么然后干什么 2 面向对象编程的核心是对象二字,对象是特征与技能的结合体,盛放数据和函数的容器
3. 类和对象
# 必须先定义类,然后调用类产生对象 # 定义了类 Person class Person(): # 类名首字母一般情况大写,使用大驼峰法命名 # 定义属性 weight = 90 height = 180 # 定义技能(函数) def sleep1(self): print('睡觉') ''' 定义类: 1. 立即执行类体代码 2. 产生一个类的名称空间,把类体里面执行的名字都扔到名称空间中(大字典) 3. 把类的名称空间绑定给__dict__, 类名.__dict__ ''' # 查看类的名称空间 print(Person.__dict__) # 调用类产生对象,默认产生的就是一个空对象{} zhangsan = Person() # 类的实例化,得到对象 # 使用对象 zhangsan.sleep1() # 睡觉 print(zhangsan.height) # 180
4. 定制对象独有特征
class Person(): weight = 90 height = 180 def sleep1(self): print('睡觉') zhangsan = Person() zhangsan.city = 'BJ' # 给shangsan对象定制独有的特征 print(zhangsan.city) # BJ
5. __init__
方法
# 对象在实例化的时候,赋初值(给对象一些属性) # 老方法 class Student(): def choose_course(self): print('选课') s1 = Student() s1.name = 'json' s1.age = 18 print(s1.name) # json # __init__的使用 class Student(): def __init__(self, name, age): self.name = name self.age = age def choose_course(self): print('选课') s1 = Student('tom', 18) # 这种初始化方式会触发类的__init__的执行,并把参数传入 print(s1.name)
6. 属性的查找顺序
# 属性的查找:先从自己的对象中查找,然后在去产生对象的类中取找 class Student(): school = 'Harvard University' def __init__(self, name, age, gender, course=None): if course is None: course = [] self.name = name self.age = age self.gender = gender self.course = course def choose_course(self, course): self.course.append(course) print('%s 选课成功 %s ' % (self.name, self.course)) s1 = Student('bob', 18, 'male') print(s1.__dict__) # {'name': 'bob', 'age': 18, 'gender': 'male', 'course': []} s1.choose_course('python') # bob 选课成功 ['python'] print(s1.__dict__) # {'name': 'bob', 'age': 18, 'gender': 'male', 'course': ['python']} ''' 属性的查找: 1. 类属性: 在类中写的属性就称为类属性 2. 对象属性:在对象自己的名称空间中的属性就是对象属性 ''' # 1.类属性的查找 # 查 print(Student.school) # 增 Student.country = 'USA' # 后面实例化的新对象才会有 print(Student.country) # 删 del Student.school print(Student.__dict__) # 删除了school属性 # 改 Student.school = 'Oxford' print(Student.school) # Oxford # 2.对象的属性查找 # 查 print(s1.name) # bob # 增 s1.height = 180 print(s1.__dict__) # 多了height # 删 del s1.age print(s1.__dict__) # age 没有了 # 改 s1.name = 'tony' print(s1.name) # tony # 判断对象是否是某个类实例化的 class Teacher(): pass print(isinstance(s1, Student)) # True print(isinstance(s1, Teacher)) # False
这篇关于python-面向对象(一)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-14获取参数学习:Python编程入门教程
- 2024-11-14Python编程基础入门
- 2024-11-14Python编程入门指南
- 2024-11-13Python基础教程
- 2024-11-12Python编程基础指南
- 2024-11-12Python基础编程教程
- 2024-11-08Python编程基础与实践示例
- 2024-11-07Python编程基础指南
- 2024-11-06Python编程基础入门指南
- 2024-11-06怎么使用python 计算两个GPS的距离功能-icode9专业技术文章分享