一 回顾

(一)定义函数

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中一切皆对象,一切皆数据类型

作为对象:

  1. 引用x = 10,y = x
  2. 作为容器类元素
  3. 作为函数参数
  4. 作为函数返回值

day10整理(面对对象,过程,类和对象)的更多相关文章

  1. js之数组,对象,类数组对象

    许久不写了,实在是不知道写点什么,正好最近有个同事问了个问题,关于数组,对象和类数组的,仔细说起来都是基础,其实都没什么好讲的,不过看到还是有很多朋友有些迷糊,这里就简单对于定义以及一下相同点,不同点 ...

  2. python-面向对象-02_类和对象

    类和对象 目标 类和对象的概念 类和对象的关系 类的设计 01. 类和对象的概念 类 和 对象 是 面向对象编程的 两个 核心概念 1.1 类 类 是对一群具有 相同 特征 或者 行为 的事物的一个统 ...

  3. Java知识系统回顾整理01基础07类和对象01引用

    一.引用的定义 引用的概念,如果一个变量的类型是 类类型,而非基本类型,那么该变量又叫做引用. 二.引用和指向 new Hero(); 代表创建了一个Hero对象 但是也仅仅是创建了一个对象,没有办法 ...

  4. js面向(基于)对象编程—类(原型对象)与对象

    JS分三个部分: 1. ECMAScript标准--基础语法 2. DOM  Document Object Model 文档对象模型 3. BOM  Browser Object Moldel 浏览 ...

  5. 0604-面向对象、类与对象、类、static、构造方法/析构方法

    一.面向对象 1.面向过程:一个人分步骤完成某个事情 2.面向对象:某件事情拆分为多个任务,由每个对象独立完成,最后调用整合为一个完整的项目 3.三要素:继承.封装.多态. 封装:私有化属性 提供公共 ...

  6. python--面向对象:类和对象命名空间

    一.一个类可以定义两种属性:静态属性和动态属性 (一)对于不可变数据类型来说,类变量最好用类名操作,也可以用对象操作,但是只能查,不能改,对象改的都只是相当于在自己的命名空间里重新建立了一个 clas ...

  7. 简述JavaScript对象、数组对象与类数组对象

    问题引出 在上图给出的文档中,用JavaScript获取那个a标签,要用什么办法呢?相信第一反应一定是使用document.getElementsByTagName('a')[0]来获取.同样的,在使 ...

  8. 【PHP面向对象(OOP)编程入门教程】2.什么是类,什么是对象,类和对象这间的关系

    类的概念:类是具有相同属性和服务的一组对象的集合.它为属于该类的所有对象提供了统一的抽象描述,其内部包括属性和服务两个主要部分.在面向对象的编程语言中,类是一个独立的程序单位,它应该有一个类名并包括属 ...

  9. [Effective JavaScript 笔记]第58条:区分数组对象和类数组对象

    示例 设想有两个不同类的API.第一个是位向量:有序的位集合 var bits=new BitVector(); bits.enable(4); bits.enable([1,3,8,17]); bi ...

随机推荐

  1. pyenv的安装和简单使用

    centos7.4   python2.7 安装pyenv需要的依赖 yum -y install gcc zlib-devel bzip2-devel openssl-devel ncurses-d ...

  2. VMbox 安装 LInux系统流程

    STEP 1 文件--新建---(自定义高级)---(默认设置)---(稍后安装系统)---(Linux+选择版本)---(虚拟机名字+存放位置)---(处理器2+核数2)---(虚拟机内存)2G一般 ...

  3. Spring MVC-从零开始-view-forward、redirect

    1.forward或redirect后,不再走viewResolver过程,直接重新从控制器开始 2.代码 package com.jt; import org.springframework.ste ...

  4. linux mysql中文乱码解决

    测试的机器是ubuntu 12.04个别linux发行版可能略有不同. 登陆mysql查看当前字符集命令: mysql> show variable like '%char%'; +------ ...

  5. layui 上传图片回显并点击放大实现

    1.页面代码布局 <div class="layui-col-xs12 form-group"> <div class="layui-col-xs6&q ...

  6. .Net Core 商城微服务项目系列(十四):分布式部署携程Apollo构建配置中心

    一.开场白 在系统设计里我们有很多配置希望独立于系统之外,而又能够被系统实时读取.但是在传统的系统设计里,配置信息通常是耦合在系统内的,比如.net里通常会放在App.config或者web.conf ...

  7. JAVA的List接口的remove重载方法调用原理

    前言 说真的,平常看源码都是自己看完自己懂,很少有写出来的冲动. 但是在写算法的时候,经常用到java中各种集合,其中也比较常用到remove方法. remove有重载函数,分别传入参数是索引inde ...

  8. 安装web3失败问题

    ① 首先可以先通过 npm cache verify 清理下缓存,在进行安装 ② 如果还是安装失败可以尝试 ---   npm install web3@^0.20.0  或者 npm install ...

  9. Vue躬行记(2)——指令

    Vue不仅内置了各类指令,包括条件渲染.事件处理等,还能注册自定义指令. 一.条件渲染 条件渲染的指令包括v-if.v-else.v-else-if和v-show. 1)v-if 该指令的功能和条件语 ...

  10. opencv之膨胀与腐蚀

    腐蚀和膨胀 Erosion/Dilation erosion/dilation,用白话说,就是让图像亮的区域收缩和扩张. 原理 我们定义一个卷积核矩阵.这个矩阵可以是任何形状的,但通常而言,是矩形或者 ...