当前位置: 首页 > news >正文

Python面向对象和方法

Python面向对象和方法

  • 一、前言
  • 二、成员变量
    • 2.1类的定义和使用
    • 2.2成员方法的定义
  • 三、面向对象
    • 3.1类和对象
    • 3.2成员变量(类属性)的赋值
      • _ _init_ _()构造方法
      • __main ___与__all_ __
  • 四、内置方法(魔法方法)
    • __init__
    • __str__
    • __lt__
    • __le__
    • __eq__
  • 五、面向对象的封装
    • 面向对象的三大特征
      • 封装
        • 私有成员、私有方法
      • 继承
        • 单继承
        • 多继承
        • 复写
        • 类型注解
          • 基础数据类型注解
          • 类对象类型注解
          • 基础容器类型注解
          • 容器类型详细注解
          • 在注释中进行类型注解
          • 无法看出变量类型的注解
          • 函数返回值的注解
          • union联合注解
      • 多态

一、前言

我们Python中的对象,一般是用来完成数据组织的

  • 生活中的数据组织
    在这里插入图片描述

  • 程序中的数据组织,我们就可以使用对象组织数据,来完成打印表格的那部分,设计表格(设计类)、打印生产表格(创建对象)、填写表格(对象属性赋值)

二、成员变量

2.1类的定义和使用

  • 语法:
    class 类名称:
    类的属性
    类的行为

    • class是关键字,表示定义类了
    • 类的属性,即定义在类中的变量(成员变量)
    • 类的行为,即定义在类中的函数(成员方法)
  • 创建类对象的语法:
    对象=类名称()

可以看出类中,不仅可以定义属性来记录数据;还可以定义函数,来记录行为,从这开始我们把定义在类内部的函数称之为方法。

2.2成员方法的定义

  • 语法:
    def 方法名(self,形参1,…,形参N):
    方法体

可以看到,在方法定义的参数列表中有一个,self关键字,self是成员方法定义的时候,必须填写的。

  • 它用来表示类对象自身的意思
  • 当我们使用类对象调用方法的时候,self会自动被python传入
  • 在方法内部,想要访问类的成员变量,必须使用self

三、面向对象

  • 现实世界的事务和类可以用属性和行为来概括
  • 在程序中的类,可以完美的描述现实世界的事务

3.1类和对象

  • 基于类创建对象的语法:对象名=类名称()
  • 为什么非要创建对象才能使用呢?
    • 类只是一种程序内的“设计图纸”,需要基于图纸生产实体(对象),才能正常工作

3.2成员变量(类属性)的赋值

_ init _()构造方法

  • 这个方法名称不是随便定义的,这是跟python内部的语法绑定的
  • 在创建类对象(构造类)的时候,会自动执行
  • 在创建类对象(构造类)的时候,将传入参数自动传递给_ init _方法使用,
    我们的类属性的值可以不用特意定义
class Student:name=Noneage=Nonetel=None
student1=Student()
student1.name="周杰伦"
student1.age=31
student1.tel="1111111111111"student2=Student()
student2.name="周杰伦"
student2.age=31
student2.tel="1111111111111"

不构造init方法


http://www.dtcms.com/a/581334.html

相关文章:

  • AJAX 实例详解
  • 检测图片URL是否失效
  • 网站设计专业实验室建设与wordpress集成软件
  • 15、RabbitMQ
  • ftp怎么连接网站空间高端网站制造
  • 命名空间的内联与嵌套
  • UML建模工具Enterprise Architect如何建立和执行架构标准和规范
  • 项目一:意图识别技术与实战(案例:智能政务热线意图分类与工单自动分发系统)
  • Spec-Kit 实战指南:从零到一构建“照片拖拽相册”Web App
  • 一个网站怎么做多条线路郑州市城乡建设局证书查询
  • 河南平台网站建设价位织梦商业网站内容管理系统
  • 圆桌论坛精华实录 | AI是重构运维逻辑的颠覆性革命?博睿数据与行业大咖亲授“AI+可观测性”的破局之道
  • 高并发场景下的缓存利器
  • XML 元素:解析与运用
  • LegionSpace黑客松指南(二):MCP服务开发与集成详解
  • 关于js导入Excel时,Excel的(年/月/日)日期是五位数字的问题。以及对Excel日期存在的错误的分析和处理。
  • 内网穿透的应用-摆脱局域网!Stable Diffusion3.5 结合cpolar使用更方便
  • postgresql客户端升级
  • 16openlayers加载COG(云优化Geotiff)
  • 万网做的网站咋样wordpress 用户api
  • 小白学规则编写:雷池 WAF 配置教程,用 Nginx 护住 WordPress 博客
  • 升鲜宝生鲜配送供应链管理系统---PMS--商品品牌多语言存储与 Redis 缓存同步实现
  • Spark的容错机制
  • spark性能优化2:Window操作和groupBy操作的区别
  • 用spark-md5实现切片上传前端起node模拟上传文件大小,消耗时间
  • 做网站优化竞价区别开发工具的种类及使用方法
  • Mac安装pnpm步骤以及会出现的问题
  • ofd在线预览js+springboot跳转
  • 基于SpringBoot实习管理系统的设计与实现的设计与实现
  • abuild的使用说明-如何使用vscode进行c/c++开发