python——面向对象

news2024/9/24 15:24:13

1、概念

①OOP:Object Oriented Programming

②面向对象:只关心哪个对象完成这个功能,它关注的是完成功能的结果,以结果为导向 python、Java、js、c++...

③面向过程&面向对象

④面向对象三大特征:封装、继承、多态

java强类型

python弱类型,变量没有类型,数据有类型,变量的类型随数据而定

2、语法

(1)类

①概念:python中,通过类描述现实世界的事物(对象)---思想。描述的方式:外在特征+内在功能(重点)

实质上,类其实用来创建对象

②具体语法

class 类名:

    #外在特征

    #内在功能

    def 方法名(self,[形参]):

        方法体

a.内在功能:方法

b.类通过关键字class声明

c.类名,就是一个标识符,建议使用大驼峰(ClassName)----首字母是大写

d.外在特征和内在功能写到类的缩进中

e.类用于创建对象,直接运行没有任何结果

class Phone:

    def call(self):

        print('call')

iphonex = Phone()

print(iphonex)

(2)对象

①概念:指的是 实实在在的事物

②具体:由类创建出来的就是对象,创建对象的过程被称作实例化(对象的实例化)

③创建对象的语法

变量 = 类名()

a.通过类名()就能创建对象

b.通常将创建好的对象赋值给一个变量

c.使用创建对象 通过 变量 使用

d.每次创建的对象都是新对象(占用空间不一样),使用其中一个对象不影响另一个

查看对象 id: print(id(iphonex))

④类与对象关系:

(3)使用对象

①对象上有功能,特征----->方法,属性

②使用对象其实就是使用对象上的方法和属性

③使用对象上的属性

a.大前提:如果没有对象就创建一个

b.使用对象上的属性

说明:属性可以在类中添加 或者 在创建对象后添加

这里讲的是:创建对象后添加

④添加属性语法(保存数据):对象.属性名 = 值

属性的访问:对象.属性名

属性的修改:对象.属性名 = 新值

删除属性:del  对象.属性名

判断属性是否存在:bool = hasattr(对象,属性名)

iphonex.color = '玫瑰金'

⑤对象上功能(方法)的使用

对象.方法名()

备注:a.一个方法可以被多次调用

b.对象可以调用上面的所有的可以使用的方法

c.如果方法有返回值,使用变量接受    变量=对象.方法名()

3、初始化 __init__方法

(1)概念

①在我们的类中,可以定义一个固定名字的方法  __init__(self,[形式参数])

②特点:创建对象的时候,自动调用实行

创建对象      变量=类名()

③作用:绑定一些初始属性(默认属性)

(2)语法

class 类名:

    def __init__(self,[形参]):

        #绑定初始属性

        self.属性名1 = 值1

        self.属性名2 = 值2

#创建对象

变量 = 类名([实参])

[实参]:其实就是传递给__init__方法的

4、__str__方法

(1)由来

通过print(对象)可以查看一个对象的信息,缺点:英文并且没有什么实质价值

<__main__.Student object at 0x00000224356161C0>

如果通过print(对象)可以用自己的语言 自定义对象消息,就非常nice

(2)概念

a.可以在类中 定义一个固定名字的 方法__str__(self)

b.特点:通过print(对象) 打印对象的时候  自动调用__str__()方法

该方法必须返回(return)一个字符串

c.作用:用于自定义对象信息

Python3 基础语法 | 菜鸟教程

快捷键 ctrl+alt+l  格式化

#-*- coding:utf-8 -*-

class Jisuan:

    def __init__(self,num1,num2):

        self.num1 = num1

        self.num2 = num2

    def add(self):

        return self.num1+self.num2

    def sub(self):

        return self.num1-self.num2

    def mul(self):

        return self.num1*self.num2

    def div(self):

        return self.num1/self.num2

jisuan = Jisuan(10,20)

res = jisuan.add()

# print(res)

jisuan.sub()

jisuan.mul()

jisuan.div()

class HighLevelStrTool:

    def deverse(self,str):

        '''

        翻转字符串

        :param str: 需要翻转的字符串

        :return: 翻转后的字符串

        '''

        return str[::-1]

str_tool = HighLevelStrTool()

res = str_tool.deverse('hello world')

print(res)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

springcloud(配置中心)

目录 1. 为何需要配置中心2. nacos的配置中心 2.1 配置示例2.2 多环境配置2.3 GROUP2.4 namespace 1. 为何需要配置中心 没有配置中心的情况下会出现什么情况&#xff1a; 如果没有配置中心&#xff0c;则各个服务的配置文件分散在各个项目中&#xff0c;不方便维护出于安全考…

代码审计学习 : xhcms

前言 从大佬那里听说&#xff0c;xhcms 很适合代码审计的新手。 环境 php 5.4.45 Apache 2.4.39 Mysql 5.7.26 文件上传配合文件包含 /index.php 和 /admin/index.php error_reporting(0); //关闭错误显示 $fileaddslashes($_GET[r]); //接收文件名 $action$file?index:…

FH30502输入3.7V升5V电流3A-5A同步整流升压芯片

3.3V升5V电流3A-5A同步整流升压芯片&#xff0c;2.7V到18V的输入电压支持供电系统和电池的较宽范围应用。FH30502根据负载情况的变化自动切换工作模式&#xff0c;在轻载Burst模式下静态电流处于低状态。FH30502使用自适应常数断开时间峰值电流模式控制。FH30502有一个内部特性…

C 语言实现经典贪吃蛇游戏

原文链接&#xff1a;C语言 贪吃蛇游戏 文章目录一、说明二、效果2.1 欢迎界面2.2 游戏规则2.3 得分排行2.4 退出游戏2.5 游戏界面2.6 游戏结束三、源码3.1 cmd.h3.2 cmd.c3.3 io.h3.4 io.c3.5 model.h3.6 service.h3.7 service.c3.8 ui.h3.9 ui.c3.10 utils.h3.11 utils.c3.12…

m蜂窝移动通信系统中越区切换的matlab仿真分析

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 用Matlab仿真一个蜂窝模型&#xff0c;用户在打电话时产生切换的过程。建立蜂窝越区切换&#xff0c;假设有16个蜂窝&#xff0c;实现两个小区之间的硬切换&#xff0c;每个小区假设能容纳30个用…

UDS入门至精通系列:Service 14

文章目录 一、Service 14功能是什么二、UDS协议对服务的定义三、用图形说明Service 14四、手动测试总结一、Service 14功能是什么? 在汽车电子诊断领域,在新车型定义诊断需求时,会给每一个ECU的故障类型定义一个DTC,ECU中运行代码判定DTC是否产生(判定机制和原理我会在关于…

Gateway之限流、熔断

目录 一、Sentinel--服务容错 ① 简化启动我们的nacos 1.高并发带来的问题 ① 修改配置文件中tomcat的并发数 ② 使用压测工具&#xff0c;对请求进行压力测试 第一步&#xff1a;修改配置&#xff0c;并启动软件 第二步&#xff1a;添加线程组 第三步&#xff1a;配置线…

MySQL 小版本升级步骤

MySQL mysql 5.7.38 升级到 5.7.40 下载软件升级包 参考下载地址&#xff1a;https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.40-linux-glibc2.12-x86_64.tar.gz 上传软件包至服务器 可以使用rz命令或scp上传本地文件 比如上传至服务器目录为 /usr/local/software…

关于如何获取上周均值的实时数据思路,吾之解合君意否?

&#x1f4da; 在前端界面图形化展示中&#xff0c;目前主流以报表形式&#xff0c;或者以曲线图形式展示其所需数据的数字动态变化效果居多。在数据量不大或者不需要模糊对比的情况下&#xff0c;我们以报表展示为主&#xff1b;而我们需要从肉眼宏观可见的监控数据变化&#…

volatile解决有序性和可见性问题

线程可见性问题分析 什么是可见性&#xff1f; 如果一个线程对一个共享变量进行了修改 而其他线程不能及时地读取修改后的值 所以在多线程情况下该共享变量就会存在可见性问题 package com.alipay.alibabademo.thread;import lombok.extern.slf4j.Slf4j;import java.util.co…

改进遗传算法在TSP问题中的应用(Matlab代码实现)

&#x1f468;‍&#x1f393;个人主页&#xff1a;研学社的博客 &#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜…

玩转Python图片处理(OpenCV)

OpenCV是一个基于BSD许可&#xff08;开源&#xff09;发行的跨平台计算机视觉库&#xff0c;可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C 类构成&#xff0c;同时提供了Python、Ruby、MATLAB等语言的接口&#xff0c;…

Qt扫盲-QLabel使用总结

QLabel使用总结一、QLabel 显示内容二、注意事项1. 格式注意2. 不保留先前状态3. 格式对齐4. 伙伴焦点三、信号和槽函数使用1. 信号2. 槽函数总结&#xff1a;QLabel 其实就是一个用来只读显示的简易控件。适合数据量很小的内容显示。QLabel用于显示 文本或图像。 不提供用户交…

深度学习之目标检测通用技巧

深度学习之目标检测通用技巧深度学习之目标检测通用技巧深度学习之目标检测通用技巧 一 数据增强 1.离线增强 离线增强:对数据集进行处理&#xff0c;数据的数目会变成增强因子原数据集的数目 2.在线增强 对输入模型的batch的数据进行增强&#xff0c;如旋转、平移、翻折等…

今天给大家介绍一篇基于SSM的教材管理系統的设计与实现

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下&#xff0c;你想解决的问…

【Tensorflow学习三】神经网络搭建八股“六步法”编写手写数字识别训练模型

神经网络搭建八股“六步法”编写手写数字识别训练模型Sequential用法model.compile(optimizer优化器,loss损失函数,metrics["准确率"])model.fitmodel.summery六步法搭建鸢尾花分类网络class搭建具有非顺序网络结构MNIST数据集Fashion MNIST数据集用Tensorflow API:t…

java计算机毕业设计基于安卓Android的掌上酒店预订APP

项目介绍 网络的广泛应用给生活带来了十分的便利。所以把掌上酒店预订与现在网络相结合,利用java技术建设掌上酒店预订APP,实现掌上酒店预订的信息化。则对于进一步提高掌上酒店预订发展,丰富掌上酒店预订经验能起到不少的促进作用。 掌上酒店预订APP能够通过互联网得到广泛的…

基于风能转换系统的非线性优化跟踪控制(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️❤️&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清…

一、CDD在诊断开发中的作用

本专栏将由浅入深的展开诊断实际开发与测试的数据库编辑,包含大量实际开发过程中的步骤、使用技巧与少量对Autosar标准的解读。希望能对大家有所帮助,与大家共同成长,早日成为一名车载诊断、通信全栈工程师。 本文介绍CDD在诊断开发中的作用,欢迎各位朋友订阅、评论,可以提…

如何评价模型的好坏?

回归&#xff1a; MSE&#xff08;均方误差&#xff09;—— 判定方法&#xff1a;值越小越好&#xff08;真实值-预测值&#xff0c;平方之后求和平均&#xff09;RMSE&#xff08;均根方误差&#xff09;—— 判定方法&#xff1a;值越小越好&#xff08;MSE开根号&#xff…