python | 类与对象

在 Python 中,我们用关键字 class 来定义类:

class Player:pass

Player 类中只有一条语句 pass,这是 Python 中的特殊语句,没有实际含义。

Python 在执行到它时也什么都不会做。不过它能够保证结构的完整性。例如,我们只写了一行 while True:,Python 会警告我们循环体为空;而如果我们在循环体位置添加一行 pass,Python 就不会报错了:

# 循环体为空,Python 会报错
while True:# 虽然循环体内的 pass 没有实际含义
# 但它补全了 while 循环结构,因此 Python 不会报错
while True:pass

类中可以包含若干 属性 和 方法属性 用于描述对象的特征,方法 用来定义对象的行为。

class Player:arm_num = 2 # 两只胳膊leg_num = 2 # 两条腿eye_num = 2 # 一双眼睛

类的实例化:

class Player:arm_num = 2 # 两只胳膊leg_num = 2 # 两条腿eye_num = 2 # 一双眼睛# 实例化 Player 类,生成一个新的实例对象
robot = Player()

实例化 Player 类,并将生成的新的实例对象赋值给变量 robot。此时的变量 robot 就是 Player 类实例化出来的实例 对象(object)。

方法定义与调用:

类的 方法 用来描述对象的 行为。

class Player:# 登记信息def sign_up(self, name, brand): self.name = name  # 登记姓名self.brand = brand      # 登记品牌print('已成功登记信息')print('+name:{}\tbrand: {}\t'.format(name, brand))

在定义类方法时,一定要把 self 参数放在参数列表第一项

继承:

定义了 Dog 类,想再定义一个它的 子类,名叫 Samoyed

# 狗狗
class Dog: pass# 萨摩耶犬
class Samoyed(Dog): pass

子类调用父类方法:

# 狗狗
class Dog:# 犬科动物有四条腿leg_num = 4# 能奔跑def run(self):print('🐕💨 狗狗快跑')# 开心的时候会摇尾巴def happy(self):print('🐕💓 狗狗开心地摇起了尾巴')
# 萨摩耶犬
class Samoyed(Dog): pass# 柯基犬
class Corgi(Dog): pass# 小白是一只萨摩耶犬
white = Samoyed()
print('小白:', end = '') # 输出“小白:”后不换行
# 小白能奔跑
white.run()# 来福是一只柯基犬
fu = Corgi()
print('来福:', end = '')
# 来福在快乐地摇尾巴
fu.happy()# 输出:
# 小白:🐕💨 狗狗快跑
# 来福:🐕💓 狗狗开心地摇起了尾巴

多态:

子类重写父类方法:

# 狗狗
class Dog:# 犬科动物有四条腿leg_num = 4# 能奔跑def run(self):print('🐕💨 狗狗快跑')# 开心的时候会摇尾巴def happy(self):print('🐕💓 狗狗开心地摇起了尾巴')# 萨摩耶犬
class Samoyed(Dog):# 重写父类中的 run() 方法def run(self):print('🐕💨💨 萨摩耶狂奔起来,像一团漂浮的云')# 柯基犬
class Corgi(Dog):def run(self):print('🐕💨 柯基飞快地摆动它的小短腿,屁股一晃一晃的')# 牧羊犬
class Collie(Dog):def run(self):print('🐕💨💨💨 牧羊犬咻地一下蹿了出去,不愧是竞速王者')

子类新增方法:

为 Samoyed 类单独设计一个 sledding() 方法:

# 狗狗
class Dog: pass# 萨摩耶犬是犬科动物
class Samoyed(Dog):# 萨摩耶会拉雪橇def sledding(self):print('🐕🛷 萨摩耶拖动雪橇,穿梭在茫茫白雪中')

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

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

相关文章

揭秘FastStone Capture:一款强大且高效的截图工具

目录 【引子】【FastStone Capture概述】【安装步骤】【使用攻略】【核心功能解析】【总结】 【引子】 在数字化信息时代,无论是工作汇报、在线教学,还是日常交流中,屏幕截图已经成为我们必不可少的辅助工具。今天,我要为大家详细…

git svn混用

背景 项目代码管理初始使用的svn, 由于svn代码操作,无法在本地暂存,有诸多不便,另外本人习惯使用git. 所以决定迁移至git管理 迁移要求: 保留历史提交记录 迁移流程 代码检出 git svn svn_project_url git代码提交 修改本…

编写应用程序,输出满足1+2+3+~+n<8888的最大正整数n

/** * 寻找满足条件的最大整数。 * 程序通过累加整数,直到累加和大于等于给定值(8888)为止,然后输出满足条件的最大整数。 */ public class E { public static void main(String args[]){ int n1; // 从1开始累加整…

得物布局构建耗时优化方案实践

一、背景 当谈到移动应用程序的体验时,页面启动速度是其中至关重要的一点,更快的页面展示速度确保应用程序可以迅速加载并响应用户的操作, 从而提高用户使用 App 时的满意度。在页面启动的整个流程中,随着 UI 复杂度的上升,布局的…

高速口光口通信

1.通过transceiver ip 设置好硬件连接配置 2.open example 用自己的模块替换掉tx和rx数据模块 三:相关信号: 1:tx/rx_rset_done1表示初始化完成

【Java探索之旅】解密Java中的类型转换与类型提升

🎥 屿小夏 : 个人主页 🔥个人专栏 : Java编程秘籍 🌄 莫道桑榆晚,为霞尚满天! 文章目录 📑前言一、类型转化1.1 自动类型转换(隐式类型转换)1.2 强制类型转换…

Arduino IDE的下载和安装

一、Arduino的介绍 Arduino是一款开源电子原型平台,主要包含两部分:硬件(各种型号的Arduino板)和软件(Arduino IDE)。这个平台由意大利的Massimo Banzi、David Cuartielles等人共同开发设计,并于…

ES分片均衡策略分析与改进

从故障说起 某日早高峰收到 Elasticsearch 大量查询超时告警,不同于以往,查看 Elasticsearch 查询队列监控后发现,仅123节点存在大量查询请求堆积。 各节点查询队列堆积情况 查看节点监控发现,123节点的 IO 占用远高于其他节点。…

【论文阅读】IEEE Access 2019 BadNets:评估深度神经网络的后门攻击

文章目录 一.论文信息二.论文内容1.摘要2.引言3.主要图表4.结论 一.论文信息 论文题目: BadNets: Evaluating Backdooring Attacks on Deep Neural Networks(BadNets:评估深度神经网络的后门攻击) 论文来源: 2019-IEEE Access …

安卓内嵌uniapp的H5页面 android调用h5内部方法

uniapp H5与原生安卓的数据互通和方法调用_安卓代码中调用uniapp中页面中的方法-CSDN博客文章浏览阅读8.7k次,点赞4次,收藏22次。1、准备我这里是uniapp与原生安卓之间的相互调用,也就是原生安卓内嵌H5页面,下面先来准备一下安卓端…

吴恩达 x Open AI ChatGPT ——如何写出好的提示词视频核心笔记

核心知识点脑图如下: 1、第一讲:课程介绍 要点1: 上图展示了两种大型语言模型(LLMs)的对比:基础语言模型(Base LLM)和指令调整语言模型(Instruction Tuned LLM&#xff0…

CentOS 7 devtoolset编译addressSanitizer版本失败的问题解决

在我的一个Cent OS7开发环境中,按https://yeyongjin.blog.csdn.net/article/details/134178420的方法升级GCC版本到8.3.1。 这两天,要用Google的addressSanitizer检验内存问题,加上编译参数后,却发现编译不通过。configure时直接退…

WanAndroid(鸿蒙版)开发的第二篇

前言 DevEco Studio版本:4.0.0.600 WanAndroid的API链接:玩Android 开放API-玩Android - wanandroid.com 1、WanAndroid(鸿蒙版)开发的第一篇 其他一些参考点,请参考上面的WanAndroid开发第一篇 效果 首页实现 整体布局分为头部的Banne…

小程序内嵌web-view实现路由切换到同级页面无效的解决方案

如果与当web-view不处于同一层级目录下,直接使用 uni.navigateTo({url:‘xxxx’});即可实现跳转,如果处于同级目录下需要使用 uni.switchTab({url:‘xxxx’}),并且声明url时候需要注意是…/的形式,比如web-view在pages/chat/index.vue ,跳转到…

Android 9.0 关于在系统Launcher3中调用截图api总是返回null的解决方案

1.概述 在9.0的系统rom产品定制化开发中,在Launcher3的开发中,在某些时候需要调用截图接口来进行截屏功能实现,而在Launcher3中发现调用系统截屏接口SurfaceControl.screenshot进行截图的时候始终为null, 获取不到系统当前页面的截屏功能,所以需要找到当前截屏失败的原因然…

java 与 C#(.net) AES加密对接

java方的代码: import javax.crypto.*; import javax.crypto.spec.SecretKeySpec; import java.nio.charset.StandardCharsets; import java.util.Base64;public class AESEncryptionExample {private static final String ALGORITHM "AES"; // 指定加密…

Linux运维总结:Centos7.6之OpenSSH7.4升级版本至9.3

一、环境信息 操作系统:Centos7.6.1810 OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 注意:升级后由于加密算法的区别,低版本的SSH工具可能无法连接,建议改用Xshell7或SecureCRT9.0以上版本。 二、注意事项 1、 检查防火墙或selinux是否…

基于Gui Guider进行LVGL的页面绘制和移植

在之前的文章里讲过一种页面切换的方式,那就是:定义和创建页面对象绘制页面内容切换页面。参考这篇文章: LVGL如何创建页面并实现页面的切换-CSDN博客 这篇文章讲了如何绘制并切换页面。 但是现在遇到一个问题,那就是页面绘制&…

每日leetcode--接雨水

引言 接雨水问题是一个经典的算法问题,它要求我们计算给定一组不同高度的墙壁时,这些墙壁之间能够蓄积多少雨水。解决这个问题的方法有很多,其中一种常见的解法是通过辅助数组来记录每个位置的左右最大高度,并计算每个位置上方能…

代码学习记录17

随想录日记part17 t i m e : time: time: 2024.03.12 主要内容:今天的主要内容是二叉树的第六部分,主要涉及二叉搜索树的最小绝对差 ;二叉搜索树中的众数;二叉树的最近公共祖先。 530.二叉搜索树…