类 和 对象 基础
面向对象基础:
1 什么是面向对象?
指的是一种编程思想
面向过程编程:
核心是‘过程’二字,过程指的是做事情的步骤,即先做什么后做什么
基于该编程思想编写程序,好比一条工厂流水线,一种机械式的思维方式。
优点:
逻辑清晰,复杂的问题流程化,进而简单化。
缺点:
可扩展性差。
面向对象编程:
核心是‘对象’二字,对象指的是特征与技能的结合体。
基于该编程思想编写程序,好比在创造世界,一种上帝式的思维方式。
优点:
可扩展性强,已于维护,
缺点:
编写程序的复杂程度远高于面向过程的编程。
优先使用面向对象还是面向过程?
面向过程结合面向对象一起使用。
实例:选课系统项目
如何造对象?首先需要学习类。
什么是类?
类型、类别、分类、
在现实世界中:
对象是一个个具体存在的事物,类是由人类总结出来的抽象概念。
在程序中:
必须遵循先有类再有对象。
如何定义类?
1、先从现实世界中,基于一个个的对象,提取出类。
2、再定义类。
对象:特征与技能的结合体
类:是一系列相同特征与技能的对象的结合体
如何定义类和对象:
先定义类,后调用类创造对象。
定义类的语法:
class 类名:
对象相同的特征
对象相同的技能
class SchoolStudent:
pass
class:用来定义类的,其后跟的是类名。
类名:类的名字,用来调用创造对象的。
注意:类名必须遵循驼峰命名法,python在定义变量和函数时不推荐使用驼峰体,但定义类时推荐使用驼峰体。
定义类发生的事情:
1、类在定义时,会生成一个空的名称空间
2、会把类内部所有的名字,放进这个名称空间
调用类发生的事情:
1、调用类时,即生成一个对象(实例化对象),同时生成此对象的的名称空间
2、会自动触发_ _ init _
3、会把对象本身以及括号内的参数一并传给 _ init _ _函数。
查找顺序:
调用对象查找属性时,先查找对象的名称空间,没有再查找类的名称空间
类:
相同的特征:--> 内部的变量
相同的技能:--> 内部的函数
类内部的函数主要是给对象用的:
1、由类来调用类内部的函数,该函数只是一个普通的函数,
函数需要几个参数就必须传入几个参数。
2、由对象来调用类内部的函数,函数称之为对象的绑定方法,
不同的对象调用该绑定方法,则会将不同的对象传入该绑定方法中
对象的绑定方法,是由对象来调用的
特殊之处是把对象当作第一个参数传给该绑定方法的self参数
修改:
类.特征或技能 的方式对类内部的名字进行修改。
‘.’会指向类内部的名称空间,从而获取名字
原文地址:https://www.cnblogs.com/allenchen168/p/11644217.html
- ADO.NET入门教程(六) 谈谈Command对象与数据检索
- ADO.NET入门教程(七) 谈谈Command对象高级应用
- ADO.NET入门教程(八) 深入理解DataAdapter(上)
- 深入理解DIP、IoC、DI以及IoC容器
- C#委托使用详解(Delegates)
- LINC switch系列之安装指南
- 设计模式成长记(一) 抽象工厂模式(Abstract Factory)
- 基于Open vSwitch的VxLAN隧道实验网络
- 来来来,快来围观那个Kotlin
- 怎样提高网站访问速度缩短网页加载时间
- 使用Kotlin开发一个Spring Boot Webflux Streaming应用(附视频)
- 插入排序算法
- Javascript 的addEventListener()及attachEvent()区别分析
- 设计模式-用接口来实现filter!梭梭就是干!
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- CentOS7下GitLab跨大版本升级的方法
- 解决Linux system v 共享内存问题
- Linux下core文件的使用方法详解
- 使用Kubeadm在CentOS7.2上部署Kubernetes集群的方法
- linux systemctl命令详解
- CentOS7使用dnf安装mysql的方法
- Linux中crontab定时任务不执行的原因
- Linux系统为什么要吃掉我的“内存”
- 教你如何修改Linux远程登录欢迎提示信息
- 详解linux 定时任务 crontabs 安装及使用方法
- 解决Centos7安装nginx后提示“Welcome to nginx on Fedora!”,conf.d目录下无default.conf文件
- 详解Linux中PostgreSQL和PostGIS的安装和使用
- 检测ip和port是否可连接的方法
- Linux关机时执行指定脚本功能实现
- 适用于稀疏的嵌入、独热编码数据的损失函数回顾和PyTorch实现