14.面向对象编程

1.面向对象
通过定义对象的属性和方法,来描述他们的状态和行为
2.类
类的属性:
用于描述对象的属性(数据)和方法(行为),对象是类的具体实例,表示一个具体的实体.
通过定义一组相关的属性和方法来封装数据和操作.从而提供了一种组织和管理代码的方法.
用到class方法,用大驼峰.
类属性可以通过类名,或者实例对象进行访问
类的方法:
与类相关联的函数,用来定义对象的行为,方法在类中定义,通过对象调用.
方法可以访问,操作对象的属性
第一个形参是self的方法叫做实例方法,类属性可以通过实例对象来访问
3类的对象:
类的对象是类的具体实例,也叫实例对象类定义对象的属性和方法,对象是类的实体,具有自己的属性值和对类中的访问权限.

class Student:

    name = '王五'
    age = '20'

    def introduce(self):
        print(f'我是{self.name},{self.age}岁')


    def study(self):
        print(f'{self.name}现在还在学习')

stu = Student()  #创建了一个实例对象
stu.introduce()

创建对象.
实例方法:
定义子在类中的方法,可以访问和操作对象的实例属性,并且在调用时会自动传入对象自身,通常用self作为第一个参数,实例方法是与类的实例关联的,并且可以访问和修改对象的状态.
使用时需要先创建实例对象,然后通过对象调用方法,在调用实例方法不用手动传self,会自动传
stu.study Student.study(stu)

    def study_sth(self, sth):
        print(f'{self.name}正在学习{sth}')

stu = Student()
stu.study_sth('语文')

关于self:

  1. 在实例方法中, 第一个参数通常是 self, 表示对象自身.定义实例方法时, 必须将 self 作为方法的第一个参数.通过 self, 方法可以访问对象的属性和其他方法.
  2. 在创建类的实例(对象)时, Python会自动传递 self 参数给实例方法, 不需要手动传入.当调用对象的方法时, 无需显式传递 self, Python会自动将对象本身传递给方法.
  3. 在实例方法内部, 可以通过 self 来访问对象的属性和方法.例如, self.attribute 可以访问对象的属性, self.method() 可以调用对象的其他方法
    4.对象的初始化:
    init,用于初始化对象的属性,创建对象时自动调用的构造方法,也叫魔法方法
    对对象的属性进行初始化操作,比如设置默认值,或接收外部传入的参数.
    在调用类创建对象时,python会自动调用类的__init__方法来初始化对象的属性
    stu = Student(‘王五’, 30)
    实例属性:
    实例属性,是指定义在类的实例(对象)中的属性,每个对象都有自己独立的实例属性,在类的实力化过程中被赋予特定的值.
    使用__init__方法,每个实例属性都是一个对象独有的变量,不同对象之间互不干扰.
    def __init__(self):
        self.name = 'wangwu'
        self.age = 20

  1. 定义位置:
  • 实例属性:实例属性是定义在类的方法中(通常是在构造函数 __init__ 中)通过 self 关键字定义的, 每个实例(对象)都有自己的一份实例属性.
  • 类属性:类属性是定义在类的方法之外的属性, 直接在类的内部定义的, 属于整个类, 所有实例共享同一份类属性.
  1. 存储位置:
  • 实例属性:每个实例(对象)都有自己独立的实例属性, 存储在对象中.
  • 类属性:类属性属于整个类, 存储在类中.
  1. 值的独立性:
  • 实例属性:不同实例的同名实例属性是相互独立的, 一个实例的实例属性修改不会影响其他实例.
  • 类属性:所有实例共享同一份类属性, 但是通过一个实例修改类属性时, 这个修改不会影响其他实例的类属性.类属性是属于类的, 而不是属于实例的, 因此每个实例都拥有独立的类属性副本, 互不影响.
  1. 访问方式:
  • 实例属性:通过对象访问, 使用表达式 对象名.属性名.
  • 类属性:可以通过类名访问, 也可以通过对象访问.使用表达式 类名.属性名对象名.属性名.
    5.str
    __str__是Python中的特殊方法(魔法方法), 用于定义类的实例的字符串表示.当我们使用print函数或str()函数打印一个对象时, 实际上是调用了该对象的__str__方法来获取其字符串表示.
    打印:当你使用print函数打印一个对象时, 实际上是调用该对象的__str__方法来获取其字符串表示, 从而以更直观和易读的方式显示对象的信息.
    字符串转换:当你使用str()函数来将一个对象转换为字符串时, 同样会调用该对象的__str__方法, 以获得其字符串表示.
    字符串格式化:在字符串格式化时, 如果包含了对象, Python会自动调用对象的__str__方法, 以便获取对象的字符串表示.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/750532.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Transformer教程之神经网络和深度学习基础

在当今的人工智能领域,Transformer已经成为了一个热门的词汇。它不仅在自然语言处理(NLP)领域取得了巨大的成功,还在计算机视觉等其他领域展现出了强大的潜力。然而,要真正理解Transformer,我们首先需要扎实…

希喂生骨肉冻干值得入手吗?拯救瘦弱、增强抵抗力最强主食测评!

希喂生骨肉冻干值得入手吗?很多小姐妹觉着自家猫咪太瘦了、体质不咋好,换季还敏感、掉毛、不吃东西,听说生骨肉冻干好吸收、营养好,可以改善体质、拯救瘦弱、增强抵抗力,为了图省事,开始盲入生骨肉冻干&…

Linux—进程与计划管理

目录 一、程序 二、进程 1、什么是进程 2、进程的特点 3、进程、线程、携程 3.1、进程 3.2、线程 3.3、携程 三、查看进程信息 1、ps -aux 2、ps -elf 3、top ​3.2、输出内容详解 3.2.1、输出第一部分解释 3.2.2、输出第二部分解释 4、pgrep 5、pstree 四、进…

The ‘textprediction‘ attribute will be removed in the future

页面标签不展示,明明是复制的,反复检查,眼睛都看瞎了,也没找到,最后还是看后台报错,The textprediction attribute will be removed in the future说什么要被废弃,但是好好的标签怎么会无缘无辜…

C语言 | Leetcode C语言题解之第191题位1的个数

题目: 题解: int hammingWeight(uint32_t n) {int ret 0;while (n) {n & n - 1;ret;}return ret; }

2024最新特种设备(锅炉作业)题库分享。

1.锅炉蒸发量大小是由(  )决定的。 A.压力的高低 B.受压元件多少 C.受热面积大小 答案:C 2.哪项不是自然循环的故障?( ) A.停滞 B.倒流 C.下降管带汽 D.上升管带汽 答案:D 3.水冷壁被现代大型锅炉广泛采用的是(  )。 A.光管水冷壁 B.膜…

龙迅LT8711V TYPE-CDP 1.2转VGA芯片,内置MCU,成熟批量产品

龙迅LT8711V描述: LT8711V是一种高性能的Type-C/DP1.2到VGA转换器,设计用于连接USB Type-C源或DP1.2源到VGA接收器。LT8711V集成了一个DP1.2兼容的接收器,和一个高速三通道视频DAC。此外,还包括两个CC控制器,用于CC通…

SherlockChain:基于高级AI实现的智能合约安全分析框架

关于SherlockChain SherlockChain是一款功能强大的智能合约安全分析框架,该工具整合了Slither工具(一款针对智能合约的安全工具)的功能,并引入了高级人工智能模型,旨在辅助广大研究人员针对Solidity、Vyper和Plutus智…

个人支付系统实现

基础首页: 订单: 智能售卡系统 基于webmanworkerman开发 禁用函数检查 使用这个脚本检查是否有禁用函数。命令行运行curl -Ss https://www.workerman.net/check | php 如果有提示Function 函数名 may be disabled. Please check disable_functions in …

显卡GTX与RTX有什么区别?哪一个更适合玩游戏?

游戏发烧友们可能对游戏显卡并不陌生,它直接关系到游戏画面的流畅度、细腻程度和真实感。在众多显卡品牌中,英伟达的GTX和RTX系列显卡因其出色的性能而备受关注。 一、GTX与RTX的区别 架构差异 GTX系列显卡采用的是Pascal架构,这是英伟达在…

Redis 7.x 系列【7】数据类型之列表(List)

有道无术,术尚可求,有术无道,止于术。 本系列Redis 版本 7.2.5 源码地址:https://gitee.com/pearl-organization/study-redis-demo 文章目录 1. 概述2. 常用命令2.1 RPUSH2.2 LPUSH2.3 LRANGE2.4 LINDEX2.6 LREM2.7 LLEN2.8 LPOP…

AGI 远不止 ChatGPT!一文入门 AGI 通识及应用开发_通向agi之路网站使用什么开发的网站

AI 大语言模型进入爆发阶段 2022 年 12 月 ChatGPT 突然爆火,原因是其表现出来的智能化已经远远突破了我们的常规认知。虽然其呈现在使用者面前仅仅只是一个简单的对话问答形式,但是它的内容化水平非常强大,甚至在某些方面已经超过人类了&am…

WordPress Dokan Pro插件 SQL注入漏洞复现(CVE-2024-3922)

0x01 产品简介 WordPress Dokan Pro插件是一款功能强大的多供应商电子商务市场解决方案,功能全面、易于使用的多供应商电子商务平台解决方案,适合各种规模的电商项目。允许管理员创建一个多卖家平台,卖家可以注册账户并在平台上创建自己的店铺,展示和销售自己的产品。提供…

python API自动化(基于Flask搭建MockServer)

接口Mock的理念与实战场景: 什么是Mock: 在接口中,"mock"通常是指创建一个模拟对象来代替实际的依赖项,以便进行单元测试。当一个类或方法依赖于其他类或组件时,为了测试这个类或方法的功能,我们可以使用模拟对象来替代…

k-NN 剪辑近邻法

本篇文章是博主在人工智能等领域学习时,用于个人学习、研究或者欣赏使用,并基于博主对人工智能等领域的一些理解而记录的学习摘录和笔记,若有不当和侵权之处,指出后将会立即改正,还望谅解。文章分类在AI学习笔记&#…

【分享】30秒在线自助制作电子证件照

近期由于自己需要制作电子证件照,所以在网上找在线制作电子证件照的网站,找了很多网站都是收费的,也下载了很多app制作,都是要收费的。最后,所以索性自己开发一个网站制作电子证件照。这里分享给需要的朋友。&#xff…

Jenkins教程-9-发送企业微信测试报告通知

上一小节我们学习了Jenkins上下游关联自动化测试任务的构建的方法,本小节我们讲解一下发送企业微信测试报告通知的方法。 1、自动化用例执行完后,使用pytest_terminal_summary钩子函数收集测试结果,存入本地status.txt文件中,供J…

点云可视化 .ply文件 | 方案汇总

前言 本文分析可视化点云.ply文件的几种方法,包括MeshLab软件、在线可视化点云.ply文件、通过PyntCloud库编程实现。 PLY是一种用于存储三维数据的文件格式,常用于点云数据和多边形网格。 被广泛应用于计算机图形学、3D扫描和3D打印等领域。PLY文件可…

React的Props、生命周期

Props 的只读性 “Props” 是 React 中用于传递数据给组件的一种机制,通常作为组件的参数进行传递。在 React 中,props 是只读的,意味着一旦将数据传递给组件的 props,组件就不能直接修改这些 props 的值。所以组件无论是使用函数…

【GD32】08 - IIC(以SHT20为例)

GD32中的IIC 今天来了解一下GD32中的硬件IIC,其实我个人是觉得软件IIC比较方便的,不过之前文章里用的都是软件IIC,今天就算是走出自己的舒适圈,我们来了解了解GD32中的硬件IIC。 我这里用的型号是GD32F407,不同型号的…