python面向对象1(python面向对象的三个基本特征)

python面向对象1(python面向对象的三个基本特征)面向过程和面对对象是一种编程思想,不能说某某语言是不是面对对象或是面向过程,而是某某语言是否支持面对对象或面向过程。回归主题,python可以支持面对对象,但也可以支持面向过程,即使不支持面向对象的语言,比如c语言,也可以用面对对象的思想写程序。你可以理解面对对象为“模块化”,恰巧python可以做到这一点,自己编写的函数文件可以用import引用模块,即使不使用class定义类,也可以实现面对对象的思想。

本文目录一览:

python支持面向对象吗?

面向过程和面对对象是一种编程思想,不能说某某语言是不是面对对象或是面向过程,而是某某语言是否支持面对对象或面向过程。回归主题,python可以支持面对对象,但也可以支持面向过程,即使不支持面向对象的语言,比如c语言,也可以用面对对象的思想写程序。你可以理解面对对象为“模块化”,恰巧python可以做到这一点,自己编写的函数文件可以用import引用模块,即使不使用class定义类,也可以实现面对对象的思想。

希望可以帮到你,谢谢!

Python是一种面向对象、解释型计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年,Python 源代码同样遵循 GPL(GNU General Public License)协议。Python语法简洁而清晰,具有丰富和强大的类库。

Python中的面向对象(进阶)

一、实例方法,类方法,静态方法

我们首先写一个类,里面包含这三种方法。

可以看到,我们用到了两个装饰器。

我们用类和实例分别调用下类方法

我们用类和实例分别调用下静态方法

静态方法其实就是把一个普通的函数写在类里,与直接在外层写一个函数是一样的,本质上是一个函数。

为了方便理解,我们分别打印下这些方法的类型

通过type()查看对象是方法还是函数

此外,还可以通过inspect模块判断某个对象是否是某种类型,返回布尔值。

用法

小Tips:概念理解

直接def定义的,我们叫做函数

把函数放到类里,我们叫做方法

方法可以通过装饰器staticmethod转为(放在方法里的)函数

继承

一个类继承另一个类时,会自动获得另一个类的所有属性和方法,被继承的类称之为父类,新类称为子类。子类拥有父类所有的属性和方法,并且可以定义自己的属性和方法

我们以上边的Rectangle类为父类来试一下

1)完全继承

可以看到,子类完全继承父类后,可以直接调用父类的所有方法。

2)部分继承

部分继承:继承父类后,修改父类的同名方法

我们试一下,Square继承Rectangle后,修改__init__()方法

3)拓展父类的方法

在保留父类中某个方法的代码同时,对方法进行拓展

可以在方法中加入”super().方法名”来实现

4)@property

python之面向对象

面向对象(OOP)是一种对现实世界理解和抽象的方法,对象的含义是指在现实生活中的具体事物, 一切皆对象 ,Python 是一门面向对象的语言,面向对象编程简单来说就是一种 封装代码 的方式。

Python 中类的定义使用 class 关键字定义类,语法如下所示:

举例,定义一个类 Cat

构造方法 init() 会在类实例化时自动调用。无论构造方法还是其他方法都需要将 self 作为第一个参数,它代表类的实例。

类创建好后,可以直接通过类名访问属性,格式为: 类名.属性名 ,比如我们访问 Cat 类的 color 属性,如下所示:

创建对象也称类的实例化,比如我们通过 Cat 类创建对象,如下所示:

创建好对象后,使用它访问属性和调用方法了,如下所示:

内部私有属性和方法是可以被访问和调用的。

我们来一起看个例子,如下所示:

输出结果:

Python 支持类的继承,而且支持多继承,语法格式为:

示例如下所示:

如果继承的父类方法不能满足我们的需求,这时子类可以 重写 父类方法,如下所示:

python面向对象1(python面向对象的三个基本特征)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/23288.html

(0)
上一篇 2023-11-20
下一篇 2023-11-20

相关推荐

  • ambari部署hadoop集群_impala apache

    ambari部署hadoop集群_impala apache1、环境说明 | 操作系统 | CentOS Linux release 7.4.1708 (Core) | | | : : | | Ambari | 2.6.x | | HDP | 2.6.3.0

    2023-01-30
    46
  • mysql参数innodb_flush_method解析

    mysql参数innodb_flush_method解析背景 由于mysql的innodb引擎对于数据文件和日志文件都有自己的内存缓冲,在真正写入磁盘时,完全可以不使用os的io缓冲机制(避免双缓冲的冗余浪费)。 所以mysql提供了对应的参数innod…

    2023-01-26
    83
  • MySQL-基础语法「建议收藏」

    MySQL-基础语法「建议收藏」MySQL客户端连接,系统自带的命令行工具执行指令: mysql [-h 127.0.0.1] [-P 3306] -u root -p SQL SQL通用语法 SQL语句可以单行或多行书写,以分号结

    2023-05-05
    40
  • 京东零售paul_全场景新零售

    京东零售paul_全场景新零售导读: 今天和大家分享京东零售OLAP平台的建设和场景的实践,主要包括四大部分: 管控面建设 优化技巧 典型业务 大促备战 — 01 管控面建设 1. 管控面介绍 管控面可以提供高可靠高效可持续运维

    2023-05-17
    43
  • kibana 安装_kibana安装

    kibana 安装_kibana安装1.从官网下载 官网下载对应版本 https://www.elastic.co/cn/downloads/past-releases#kibana 2.解压缩 tar -xvf kibana-7.15

    2023-06-15
    38
  • mysql复制模式_centos7克隆后配置

    mysql复制模式_centos7克隆后配置为 MySQL 服务器配置复制非常简单。但由于场景不同,基本的步骤还是有所差异。最基本的场景是新安装主库和备库,总得来说分为以下几步: 1️⃣在每台服务器上创建复制账号。 2️⃣配置主库和备库。 3…

    2023-03-07
    40
  • MySQL完整版详解「终于解决」

    MySQL完整版详解「终于解决」一、数据库的操作 1.创建数据库 若在可视化软件上创建数据库,参考如下图 如果要创建的数据库不存在,则创建成功 create database if not exists westos; 2.删除数据

    2023-05-26
    45
  • 日志系统(2)_日志文件系统

    日志系统(2)_日志文件系统:重做日志。每当有操作时,在数据变更之前将操作写入 ,这样当发生掉电之类的情况时系统可以在重启后继续操作 :称为撤销日志,当一些变更执行到一半无法完成时,可以根据撤销日志恢复到变更之间的状态。 位于存

    2023-02-11
    62

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注