day10整理(面对对象,过程,类和对象)
目录
一 回顾
(一)定义函数
def 函数名():
'''注释'''
代码块
(二)定义函数的三种形式
1.空函数
2.有参函数
3.无参函数
(三)函数的返回值
1.没有返回值,默认返回None
2.return可以返回多个值
3.return可以终止函数
(四)函数的参数
1.形参
(1)位置形参
从左到右一个一个写
(2)默认形参
给位置形参添加一个默认值,如果给他传值,用的是传值的值
2.实参
(1)位置实参
从左到右给位置形参传值
(2)关键字实参
按照位置形参名给位置形参传值
二 面向过程编程
面向过程编程:按照流程/步骤敲代码,一步一步(一个一个函数),上一个函数的输出时下一个函数的输入
优点:代码的独立性提高,流程清晰
缺点:一个错误,程序直接崩掉
编程
控制变量不断的变化
三 面向对象过程
对象与对象之间交互
优点:互不干扰
缺点:异常复杂
四 类和对象
对象:一系列特征(属性)和技能(方法)的结合体
类:(模板/类别)划分对象,通过具有相同的属性和技能的对象属于同一类
现实世界中现有对象才会有类,但是python中先有类后有对象
(一)定义类语法
class 类名(驼峰体):
school = 'oldboy' #给类添加属性
'''文件名''' # __doc__
def
choose_course(slef): # 定义在类内发的函数一般称为方法(给类增加技能)
pass
stu = 类名.__dict__ # 获取类的所有属性和方法
print(stu_dict['school'])#获取学校
stu_dict['choose_course'](123)#传值
print(Student.__doc__)
##函数对象(补充)
def x():
print('x')
y = x
函数定义阶段:检测语法,不执行代码
类定义阶段:执行代码
(二)定义对象(实例化对象)
stu1 = Student() #stu就是一个对象
对象使用类中的方法,不需要加参数,因为实例化对象调用该方法时,python会自动将实例化对象传给self
五 定制化对象独有特征
class OldboyStudent:
school = 'oldboy'
def __init__(self, name, age, gender):
"""调用类的时候自动触发"""
self.name = name
self.age = age
self.gender = gender
print('*' * 50)
def choose_course(self):
print('is choosing course')
python中一切皆对象,一切皆数据类型
作为对象:
- 引用x = 10,y = x
- 作为容器类元素
- 作为函数参数
- 作为函数返回值
day10整理(面对对象,过程,类和对象)的更多相关文章
- js之数组,对象,类数组对象
许久不写了,实在是不知道写点什么,正好最近有个同事问了个问题,关于数组,对象和类数组的,仔细说起来都是基础,其实都没什么好讲的,不过看到还是有很多朋友有些迷糊,这里就简单对于定义以及一下相同点,不同点 ...
- python-面向对象-02_类和对象
类和对象 目标 类和对象的概念 类和对象的关系 类的设计 01. 类和对象的概念 类 和 对象 是 面向对象编程的 两个 核心概念 1.1 类 类 是对一群具有 相同 特征 或者 行为 的事物的一个统 ...
- Java知识系统回顾整理01基础07类和对象01引用
一.引用的定义 引用的概念,如果一个变量的类型是 类类型,而非基本类型,那么该变量又叫做引用. 二.引用和指向 new Hero(); 代表创建了一个Hero对象 但是也仅仅是创建了一个对象,没有办法 ...
- js面向(基于)对象编程—类(原型对象)与对象
JS分三个部分: 1. ECMAScript标准--基础语法 2. DOM Document Object Model 文档对象模型 3. BOM Browser Object Moldel 浏览 ...
- 0604-面向对象、类与对象、类、static、构造方法/析构方法
一.面向对象 1.面向过程:一个人分步骤完成某个事情 2.面向对象:某件事情拆分为多个任务,由每个对象独立完成,最后调用整合为一个完整的项目 3.三要素:继承.封装.多态. 封装:私有化属性 提供公共 ...
- python--面向对象:类和对象命名空间
一.一个类可以定义两种属性:静态属性和动态属性 (一)对于不可变数据类型来说,类变量最好用类名操作,也可以用对象操作,但是只能查,不能改,对象改的都只是相当于在自己的命名空间里重新建立了一个 clas ...
- 简述JavaScript对象、数组对象与类数组对象
问题引出 在上图给出的文档中,用JavaScript获取那个a标签,要用什么办法呢?相信第一反应一定是使用document.getElementsByTagName('a')[0]来获取.同样的,在使 ...
- 【PHP面向对象(OOP)编程入门教程】2.什么是类,什么是对象,类和对象这间的关系
类的概念:类是具有相同属性和服务的一组对象的集合.它为属于该类的所有对象提供了统一的抽象描述,其内部包括属性和服务两个主要部分.在面向对象的编程语言中,类是一个独立的程序单位,它应该有一个类名并包括属 ...
- [Effective JavaScript 笔记]第58条:区分数组对象和类数组对象
示例 设想有两个不同类的API.第一个是位向量:有序的位集合 var bits=new BitVector(); bits.enable(4); bits.enable([1,3,8,17]); bi ...
随机推荐
- 导出 mysql 数据到 redis
决定你要导入到 redis 的数据类型 假设我的表 t_user 的结构为 列名 注释 类型 name 名称 varchar idcard 身份证号 varchar phone 手机号 varchar ...
- ppt课件动手动脑实际验证
1关于double精度 源代码:public class Doublejingdu { public static void main(String[] args) { System.out.prin ...
- 手把手教你用最简便的方法免费安装SSL
原文链接:小枫同学的个人博客 随时IT的发展,它几乎涵盖了世界发展中的任何一方面,几乎都和计算机挂钩,也有好多小伙伴想开一个自己的网站,分享一些知识,分享一些心情等等.但是随着IT的发展,网络安全也越 ...
- python自动化测试三部曲之untitest框架
终于等到十一,有时间写博客了,准备利用十一这几天的假期把这个系列的博客写完 该系列文章本人准备写三篇博客 第一篇:介绍python自动化测试框架unittest 第二篇:介绍django框架+requ ...
- 使用springboot最新版本mysql-Connector连接数据库时报错解决
在连接数据库时,使用了最新版本的mysql-Connector,即6.0以上版本 1.报错如下: Loading class `com.mysql.jdbc.Driver'. This is depr ...
- 如何设置eclipse自动提示功能
1.Window --> preferences 2.java --> Editor --> Content Assist 3.将Auto activation triggers f ...
- vue 单页应用点击某个链接,跳转到新页面的方式
<router-link class="goDetail" :to="{name: 'detail',params: {id:item.id}}" tar ...
- [Tricks] 为文件夹右键菜单增加 【使用VS Code 打开】
传统的IDE安装之后都会在文件夹的右键菜单中增加如[Open in Visual Studio]或者[Open Folder as IntelliJ IDEA Project]这样的选项 但VS Co ...
- MongoDB 学习笔记之 分析器和explain
MongoDB分析器: 检测MongoDB分析器是否打开: db.getProfilingLevel() 0表示没有打开 1表示打开了,并且如果查询的执行时间超过了第二个参数毫秒(ms)为单位的最大查 ...
- 什么是ECMAScript、什么又是ECMA?
转载:针对于ECMA5Script .ECMAScript6.TypeScript的认识 什么是ECMAScript.什么又是ECMA? Ecma国际(Ecma International)是一家国际 ...