Python语言:面向对象——类与对象初体验

news2024/11/28 14:48:43

什么是面向对象的编程思想?

我就知道他是一种编程思想,因资历尚浅,没有悟到面向对象的精髓和奥秘所在,只好援引一下chatgpt给我的答案了。

接下来到了分析类与对象的实质是什么了,这个我倒是知道,以下是我的理解:

  1. 世界的一切事物皆是对象。
  2. 类就是一些具有共同特征的对象的抽象的集合,比如教师类,具有语文老师对象,数学老师对象等。
  3. 每一种类都有自己的属性和行为
  4. 按我的总结理解类与对象就可以了。

我们现在来详细分析一下类的属性和行为。

  • 类的属性:因为类是对象的抽象集合,所以类的属性就是对象的特征,比如有个狗狗类,他的属性就是名字,种类,年龄,毛发颜色等。
  • 类的行为:因为类是对象的抽象集合,所以类的属性就是对象做的事,比如有个狗狗类,他的行为就是吃饭,睡觉,找对象,出去溜达,时不时的嚎几嗓子等。

以上皆是理论上的分析与探讨。接下来就是实操了。

创建一个类

"""
类的使用语法:
class 类名:  类的关键字是class
类的属性      类的属性是定义在类中的变量(成员变量)
类的行为      类的行为,即定义在类中的函数(成员方法)
注意点:类名必须符合命名变量的语法格式且首字母必须大写
"""

创建类的属性

"""
创建类的属性
变量名=具体的值
"""

创建类的行为

"""
创建一个类的行为
def 变量名(self,形参1,形参2......):
代码块

注意事项:
1:self关键字在创建函数的时候系统会自动带上,传参的时候可以自动忽略
2:成员方法使用类内部的成员属性语法格式为:self.属性名

"""

创建一个类的实例对象

"""
创建一个类的实例对象
对象名 = 类名()
"""
给一个类的实例对象的属性进行赋值操作
"""
给一个类的实例对象的属性进行赋值操作
对象名.属性名=具体的值
"""

实例对象调用类的行为

"""
实例对象调用类的行为
对象名.类的行为名()括号内是否有参数视情况而定
"""

案例:创建一个狗狗类

# 创建一个狗狗类

class Dog:
    name = None
    sex = None
    age = None

    def say(self):
        print("我的爱犬是一个阿拉斯加犬")
        print("他%d岁了" % self.age)
        print("他的名字是%s" % self.name)
        print("他会说你好")






dog_1 =Dog()
dog_1.age=3
dog_1.name="花花"
dog_1.say()

运行结果如下:

 创建一个学生类

"""
使用class关键字创建一个类,
语法格式:
class 类名 :  类名要符合python语言创建变量名的规范且首字母需要大写
    代码块
"""


# 创建一个学生个人信息表的类
class Students:
    name = None
    sex = None
    age = None
    id_card = None


"""
创建一个对象
语法格式:
对象名 = 类名()

"""


# 创建一个学生类的实例对象
stu_1 = Students()


"""
给对象属性进行赋值操作
语法格式:
对象名.属性名= 具体的值
"""

# 给一个学生类的实例对象的属性进行赋值操作
stu_1.name="李华"
stu_1.sex="男"
stu_1.age=18
stu_1.id_card="学生会001"


"""
获取对象中某个属性的值
语法格式:
print(对象名.属性名)
"""

print(stu_1.name)

运行结果如下:

不要问为什么老是爱用李华举例子,高中的时候可被李华折磨坏了,隔上几天就要代替李华写英语作文。

案例如下:

假如你是李华,你是新华中学的高三年级学生会主席(此后省去5000字)作文不少于80个字。

本文结束。

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

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

相关文章

数据加解密系统(揭秘数据解密的关键技术)

数据加解密系统是一种用于保护数据安全的系统,它可以将数据加密以防止未经授权的访问和数据泄露,同时也可以将已加密的数据解密以供授权用户使用。 随着网络技术和电子商务的不断发展,数据安全问题越来越受到人们的关注。数据加解密系统被广泛…

C/C++预定义宏、 #line 、#error、 #pragma和泛型选择

文章目录 预定义宏_ _func_ _是C语言的预定义标识符 #line和#error#pragma泛型选择(C11)参考 预定义宏 C标准规定了一些预定义宏: _ _func_ _是C语言的预定义标识符 C99 标准提供一个名为_ _func_ _的预定义标识符,它展开为一…

无线WiFi安全渗透与攻防(十二)之WPA-自动化渗透WPA加密

WPA-自动化渗透WPA加密 WPA-自动化渗透WPA加密WPA-自动化渗透WPA加密 ip a1.开启监听模式 airmon-ng start wlan02.指定密码破解 wifite --dict passwd.txt --dict:</

11月编程语言排行榜出炉:C#超越Java已成定局!

TIOBE最新的编程语言排行榜刚刚出炉了&#xff0c;本月Java依然大幅下跌3.63%&#xff0c;C#本月上涨3.4%&#xff0c;C#和Java仅相差0.7%。 就像网友评论说的&#xff1a;Java成于互联网的兴起&#xff0c;败于互联网的衰落。 一直以来我也都是从事互联网行业、主要是电商行业…

分享一个图像轮播效果

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 话不多说&#xff0c;先看效果&#xff1a; 根据图片的播放&#xff0c;页面背景会被替换为当前图片。 老规矩&#xff0c;源码自己拿…

Mysql-体系结构

MySQL体系结构 1). 连接层 最上层是一些客户端和链接服务&#xff0c;包含本地sock 通信和大多数基于客户端/服务端工具实现的类似于 TCP/IP的通信。主要完成一些类似于连接处理、授权认证、及相关的安全方案。在该层上引入了线程 池的概念&#xff0c;为通过认证安全接入的客…

【第2章 Node.js基础】2.7 Node.js 的流(一)可写流

&#x1f308;可写流 &#x1f680;什么是可写流 可写流是对数据被写入的目的地的一种抽象。 所有可写流都实现了 stream.Writable类定义的接口。 可写流的例子包括&#xff0c;也都是实现了可写流接口的双工流 客户端的 HTTP 请求、服务器的HTTP 响应、fs 的写入流、zlib…

VC6.0 添加CMarkup文件,程序编译不成功

报错信息 Generating Code... Linking...Creating library Release/Iodevcfg.lib and object Release/Iodevcfg.exp ItemConfigDlg.obj : error LNK2001: unresolved external symbol "public: __thiscall CMarkup::~CMarkup(void)" (??1CMarkupQAEXZ) ItemConfigD…

免费最强下载工具IDM,没有之一

IDM(Internet Download Manager)下载工具是我见过的最强下载工具&#xff0c;没有之一。主要以下特点&#xff1a; 下载程度超快实时检测下载行为下载任何文件探测视频下载地址&#xff0c;几分钟下载高清视频可多进程下载&#xff0c;可多线程下载 IDM官网地址&#xff1a;下…

《C++ Primer》第9章 顺序容器(二)

参考资料&#xff1a; 《C Primer》第5版《C Primer 习题集》第5版 9.3 顺序容器操作&#xff08;P305&#xff09; 9.3.1 向容器中添加元素&#xff08;P305&#xff09; 使用push_back 除 array 和 forward_list 外&#xff0c;每个顺序容器都支持 push_back &#xff1a…

MTK联发科MT8766核心板 4G智能模块安卓开发板方案定制

MT8766 是一款基于 MTK 平台工业级高性能、可运行 android12.0 操作系统的 4G智能模块,三款模块硬件是相互兼容&#xff0c;支持 LTE-FDD&#xff08;CAT-7&#xff09;/LTE-TDD&#xff08;CAT-7&#xff09;/WCDMA/TD-SCDMA/EVDO/GSM 等多种制式&#xff1b;支持 WiFi5 802.1…

(Matalb分类预测)WOA-BP鲸鱼算法优化BP神经网络的多维分类预测

目录 一、程序及算法内容介绍&#xff1a; 基本内容&#xff1a; 亮点与优势&#xff1a; 二、实际运行效果&#xff1a; 三、部分程序&#xff1a; 四、完整代码数据使用手册下载&#xff1a; 一、程序及算法内容介绍&#xff1a; 基本内容&#xff1a; 本代码基于Matalb…

IDEA 快捷键汇总

目录 1、altinsert 2、ctrl/ 3、altenter 4、alt回车 5、ctrlD 6、ctrlaltL 7、ctrl点击 8、alt左键向下拉 9、ctrlaltv 10、ctrlaltwint 1、altinsert 快速创建代码&#xff0c;可以快速创建类中get set tostring等方法 2、ctrl/ 单行注释 3、altenter…

linux套接字-Socket

1.概念 局域网和广域网 局域网&#xff1a;局域网将一定区域内的各种计算机、外部设备和数据库连接起来形成计算机通信的私有网络。广域网&#xff1a;又称广域网、外网、公网。是连接不同地区局域网或城域网计算机通信的远程公共网络。IPInternet Protocol&#xff09;&#…

实用篇-ES-DSL查询文档

数据的存储不是目的&#xff0c;我们希望从海量的酒店数据中检索出需要的信息&#xff0c;这就是ES的搜索功能 官方文档: https://elastic.co/guide/en/elasticsearch/reference/current/query-dsl.html#query-dsl。DSL是用来查询文档的 Elasticsearch提供了基于JSON的DSL来定…

SaaS与PaaS平台的区别

目录 一、前言 二、SaaS化与PaaS化平台的区别 三、PaaS化的低代码平台更胜一筹 PaaS优势&#xff1a; 支持PaaS服务的低代码平台 1.私有化部署&#xff0c;为数据安全保驾护航 2.业内领先技术&#xff0c;为开发强势赋能 3.超强集成能力&#xff0c;系统对接无忧 4.源代码交付&…

openEuler 系统操作 Docker Compose 容器化部署 Redis Cluster 集群的节点添加、删除和可视化监控

容器化部署 Redis Cluster 集群的节点添加、删除和可视化监控 Redis Cluster 集群回顾openEuler 系统查看端口是否被占用Redis Cluster 验证Redis CLI 客户端命令验证Redis GUI 工具验证宿主机安装 RedisInsightDocker 容器化部署 RedisInsight 添加集群节点启动 Reids 扩容服务…

接口自动化测试面试题

前言 前面总结了一篇关于接口测试的常规面试题&#xff0c;现在接口自动化测试用的比较多&#xff0c;也是被很多公司看好。那么想做接口自动化测试需要具备哪些能力呢&#xff1f; 也就是面试的过程中&#xff0c;面试官会考哪些问题&#xff0c;知道你是不是真的做过接口自动…

【Spring】 Spring中的IoC(控制反转)

以往在定义业务层实现时&#xff0c;在指定具体地Dao时候需要具体地定义出其实现&#xff1a; public class BookServiceImpl implements BookService{private BookDao bookDao new BookDaoImpl();public void save(){bookDao.save()} }public class BookDaoImpl implements …

python连接redis库

在自动化过程中&#xff0c;如果需要动态获取某个数据时&#xff0c;需要连接redis数据库。下面来详细介绍下如何操作。 redis这个库是python自带的&#xff0c;直接import导入即可,如下; import redis 1. redis 地址和端口&#xff0c;端口一般都是默认的6379,只需要换下地…