Day 22 面向对象编程
面向对象基础
面向对象编程(抽象)
对象:特征和技能的结合体
面向对象编程:一个个对象进行交互
优点:扩展性非常强
缺点:逻辑非常复杂
类与对象
类(类别):一系列具有相同特征和技能的对象
现实世界中先有对象,后有类
# 定义学生
    # 姓名: 猪瑞星
    # 学号: 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 面向对象编程的更多相关文章
- [.net 面向对象编程基础] (22)  事件
		
[.net 面向对象编程基础] (22) 事件 事件(Event)是学习.net面向对象编程很重要的一部分,在学习事件之前,我们实际上已经在很多地方使用了事件,比如控件的click事件等,这些都是. ...
 - python 学习笔记7 面向对象编程
		
一.概述 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发"更快更好更强..." ...
 - 进击的Python【第六章】:Python的高级应用(三)面向对象编程
		
Python的高级应用(三)面向对象编程 本章学习要点: 面向对象编程介绍 面向对象与面向过程编程的区别 为什么要用面向对象编程思想 面向对象的相关概念 一.面向对象编程介绍 面向对象程序设计(英语: ...
 - Python黑帽编程2.9 面向对象编程
		
Python黑帽编程2.9 面向对象编程 我个人认为,计算机语言的发展,有两个方向,一个是从低到高的发展过程,在这个过程中,语言的思考和解决问题的方式是面向硬件的.硬件本质上处理的是信号,在此基础上, ...
 - [.net 面向对象编程基础]  (1)  开篇
		
[.net 面向对象编程基础] (1)开篇 使用.net进行面向对象编程也有好长一段时间了,整天都忙于赶项目,完成项目任务之中.最近偶有闲暇,看了项目组中的同学写的代码,感慨颇深.感觉除了定义个类,就 ...
 - python_面向对象编程
		
一.编程范式 程序员通过特定的语法+数据结构+算法告诉计算机如果执行任务,实现这个过程有不同的编程方式,对这些不同的编程方式进行归纳总结得出来的编程方式类别,即为编程范式 编程范式:面向过程编程.面向 ...
 - 【转】javascript面向对象编程
		
摘要:本文本来是想自己写的,奈何花了好长时间写好之后忘记保存,还按了刷新键,一键回到解放前,索性不写了,所以本文是转载的. 面向对象编程是用抽象方式创建基于现实世界模型的一种编程模式,主要包括模块化. ...
 - python之面向对象编程
		
1.面向对象介绍: 世界万物,皆可分类 世界万物,皆为对象 只要是对象,就肯定属于某种类 只要是对象,就肯定有属性 2. 面向对象的几个特性: class类: 一个类即对一类拥有相同属性的对象的抽象, ...
 - [.net 面向对象编程基础] (17) 数组与集合
		
[.net 面向对象编程基础] (17) 数组与集合 学习了前面的C#三大特性,及接口,抽象类这些相对抽象的东西以后,是不是有点很累的感觉.具体的东西总是容易理解,因此我们在介绍前面抽象概念的时候,总 ...
 
随机推荐
- hdu_1008_Elevator_201308191629
			
ElevatorTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Sub ...
 - 利用Date类计算生活时间
			
今天学习到了Date类还有其他一些常用类! 这里就简单使用Date及其一些方法计算生活时间. import java.text.ParseException; import java.text.Sim ...
 - MongoDB:更改数据库位置(Windows)
			
MongoDB在Windows中默认的数据库目录是c:\data.如果在没有该目录的情况下,直接运行mongod.exe,就会报如下错误: 在某些情况下,我们并不想把mongoDB的数据库放在c盘,这 ...
 - requireJS使用shim注入非标准模块详解
			
在javascript中定义全局变量有2种方式,本质上是等价的,都是向window对象注入属性或者方法. // global.js var g_name = "aty"; wind ...
 - 火云开发课堂 - 《使用Cocos2d-x 开发3D游戏》系列 第七节:PS基础:UV动画
			
<使用Cocos2d-x 开发3D游戏>系列在线课程 第七节:PS基础:UV动画 视频地址:http://edu.csdn.net/course/attend/1330/20807 交流论 ...
 - 从头认识java-15.7 Map(3)-介绍HashMap的工作原理-get方法
			
接着上一章节.我们来讨论一下get方法. 1.还是利用上一章节的图 下图引用自:http://www.admin10000.com/document/3322.html 我们简单说一下步骤.就是通过h ...
 - RMAN 备份与恢复 实例
			
1. 检查数据库模式: sqlplus /nolog conn /as sysdba archive log list (查看数据库是否处于归档模式中) 若为非归档,则修改数据库归 ...
 - 电脑升级win10后visio的问题
			
上周由于电脑意外蓝屏,系统从win7升级到了win10,昨天工作写文档时才发现缺少画图的工具,于是按照了visio2013,在编辑设计图时发现,一旦用visio打开或编辑图后再到word里设计图的内容 ...
 - c++之——————各种变量
			
对我们程序员来讲,“变量”和“对象”是可以相互互换使用的.-------------开篇之词. 变量:提供一个具有名字的可供程序操作的存储空间.由类型说明符和其后紧跟的数个列表组成,其中变量名之间使用 ...
 - jquery的ajax同步异步执行
			
大家先看一段简单的jquery ajax 返回值的js 代码 function getReturnAjax{ $.ajax({ type:"POST", http:/ ...