面向对象基础

面向对象编程(抽象)

对象:特征和技能的结合体

面向对象编程:一个个对象进行交互

优点:扩展性非常强

缺点:逻辑非常复杂

类与对象

类(类别):一系列具有相同特征和技能的对象

现实世界中先有对象,后有类

# 定义学生

    # 姓名: 猪瑞星
# 学号: 222222
# 学校: oldboy
# 技能: 选课,三十六变 # 姓名: 孔悟空
# 学号: 111111
# 学校: oldboy
# 技能: 选课,七十二变 # 姓名: 雷公
# 学号: 666666
# 学校: oldboy
# 技能: 选课,电闪雷鸣,开车 # 定义老师 # 姓名:tank
# 学校:oldboy
# 技能:教课,piao # 姓名:nick
# 学校:oldboy
# 技能:教课,看书

Python中先有类,再有对象

class 类名(驼峰体):  # 定义类,会直接运行类体代码
# 定义一系列特征
# 定义一系列方法 对象1 = 类名() # 实例化出对象

给对象定制独有的特征

class OldBoyStudent:
school = 'oldboy' def __init__(self, name ,age):
self.name = name
self.age = age def choose_course(self):
print('is choosing course') stu1 = OldBoyStudent('a',1)
stu1.school stu2 = OldBoyStudent('b',2)
stu2.scool

对象的属性查找顺序

class OldBoyStudent:
school = 'oldboy'
name = 'c' def __init__(self, name ,age):
self.name = name
self.age = age def choose_course(self):
print('is choosing course') stu1 = OldBoyStudent('a',1)
stu1.school stu2 = OldBoyStudent('b',2)
stu2.scool

先从对象本身查找,然后从类中查找,类中也没有则报错

类与对象的绑定方法

class OldBoyStudent:
school = 'oldboy' def __init__(self, name ,age):
self.name = name
self.age = age def choose_course(self):
print(id(self)) # 10000
print(self.school)
print(f'{self.name} is choosing course') stu1 = OldBoyStudent('a',1)
stu1.choose_course() # self是对象本身
print(id(stu1)) # 10000 OldBoyStudent.choose_course(stu1)

类与数据类型

lis = list([1,2,3])
lis2 = list([1,2,3])
lis.append(4)
# list.append(lis,4)

对象的高度整合

对象会有一大堆属性/数据,还会有一大堆方法来操作这些属性,然后对于不同的对象,这些属性又不同.

Day 22 面向对象编程的更多相关文章

  1. [.net 面向对象编程基础] (22) 事件

    [.net 面向对象编程基础] (22)  事件 事件(Event)是学习.net面向对象编程很重要的一部分,在学习事件之前,我们实际上已经在很多地方使用了事件,比如控件的click事件等,这些都是. ...

  2. python 学习笔记7 面向对象编程

    一.概述 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发"更快更好更强..." ...

  3. 进击的Python【第六章】:Python的高级应用(三)面向对象编程

    Python的高级应用(三)面向对象编程 本章学习要点: 面向对象编程介绍 面向对象与面向过程编程的区别 为什么要用面向对象编程思想 面向对象的相关概念 一.面向对象编程介绍 面向对象程序设计(英语: ...

  4. Python黑帽编程2.9 面向对象编程

    Python黑帽编程2.9 面向对象编程 我个人认为,计算机语言的发展,有两个方向,一个是从低到高的发展过程,在这个过程中,语言的思考和解决问题的方式是面向硬件的.硬件本质上处理的是信号,在此基础上, ...

  5. [.net 面向对象编程基础] (1) 开篇

    [.net 面向对象编程基础] (1)开篇 使用.net进行面向对象编程也有好长一段时间了,整天都忙于赶项目,完成项目任务之中.最近偶有闲暇,看了项目组中的同学写的代码,感慨颇深.感觉除了定义个类,就 ...

  6. python_面向对象编程

    一.编程范式 程序员通过特定的语法+数据结构+算法告诉计算机如果执行任务,实现这个过程有不同的编程方式,对这些不同的编程方式进行归纳总结得出来的编程方式类别,即为编程范式 编程范式:面向过程编程.面向 ...

  7. 【转】javascript面向对象编程

    摘要:本文本来是想自己写的,奈何花了好长时间写好之后忘记保存,还按了刷新键,一键回到解放前,索性不写了,所以本文是转载的. 面向对象编程是用抽象方式创建基于现实世界模型的一种编程模式,主要包括模块化. ...

  8. python之面向对象编程

    1.面向对象介绍: 世界万物,皆可分类 世界万物,皆为对象 只要是对象,就肯定属于某种类 只要是对象,就肯定有属性 2. 面向对象的几个特性: class类: 一个类即对一类拥有相同属性的对象的抽象, ...

  9. [.net 面向对象编程基础] (17) 数组与集合

    [.net 面向对象编程基础] (17) 数组与集合 学习了前面的C#三大特性,及接口,抽象类这些相对抽象的东西以后,是不是有点很累的感觉.具体的东西总是容易理解,因此我们在介绍前面抽象概念的时候,总 ...

随机推荐

  1. BlockQueue中ArrayBlockingQueue和LinkedBlockingQueue比较

    LinkedBlockingQueue是BlockingQueue的一种使用Link List的实现,它对头和尾(取和添加操作)采用两把不同的锁,相对于ArrayBlockingQueue提高了吞吐量 ...

  2. HDU4882ZCC Loves Codefires(贪心)

    ZCC Loves Codefires Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...

  3. IE新发现

    近期用thinkphp写的小程序在IE上測试的时候偶然发现原来IE不兼容的不止是样式啊!!! 震惊哭了~ 在火狐上面嗖嗖的一点bug也没有,在IE上面跟死水一样.. .. 那么问题来了:我的问题是出如 ...

  4. Codeforces Round #390 (Div. 2) D. Fedor and coupons

    题意:题目简化了就是要给你n个区间,然后让你选出k个区间  使得这k个区间有公共交集:问这个公共交集最大能是多少,并且输出所选的k个区间.如果有多组答案,则输出任意一种.   这题是用优先队列来处理区 ...

  5. Detach a Database

    https://msdn.microsoft.com/en-us/library/ms191491.aspx 方法一:Using SQL Server Management Studio To det ...

  6. bzoj 4318 OSU! —— 期望DP

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4318 期望DP,因为平方的期望不等于期望的平方,所以用公式递推: 第一次推错了囧,还是看这位 ...

  7. c++ 写进文件并读出

    #include <iostream>#include <fstream>#include <vector>#include <string> int ...

  8. PCB 3D PCB 后续改进与扩展功能一些想法

    再次感受到WelGl实现3D效果的震撼, 一.目前功能: Gerber与钻孔 解析 并转为3D实景图,用户360度操控 二.后续改进扩展功能: 1.增加ODB++解析 2. 3D 尺寸标注(外形尺寸, ...

  9. Python 42 mysql用户管理 、pymysql模块

    一:mysql用户管理 什么是mysql用户管理 mysql是一个tcp服务器,应用于操作服务器上的文件数据,接收用户端发送的指令,接收指令时需要考虑到安全问题, ATM购物车中的用户认证和mysql ...

  10. IntelliJ IDEA/PyCharm/WebStorm 2019.1.2 注册码激活

    [IDEA2019.1.2最新版版本激活,直接查看底部] 网上IntelliJ IDEA激活方式大多均已失效,目前常用激活方式为License Server 激活: http://idea.imsxm ...