Python 基础教程:面向对象

  • 类(Class): 用来描述具有相同的属性和方法的对象的集合。定义了该集合中每个对象所共有的属性和方法。

  • 类变量:在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外,通常不作为实例变量使用。

  • 数据成员:类变量或者实例变量, 用于处理类及其实例对象的相关的数据。

  • 方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写。

  • 局部变量:定义在方法中的变量,只作用于当前实例的类。

  • 实例变量:在类的声明中,属性是用变量来表示的。这种变量就称为实例变量,是在类声明的内部但是在类的其他成员方法之外声明的。

  • 继承:即一个派生类(derived class)继承基类(base class)的字段和方法。

创建群一个类

class Employee:'所有员工的基类'   # 文档字符串empCount = 0     # 类变量def __init__(self, name, salary):  # 类的构造方法self.name = nameself.salary = salaryEmployee.empCount += 1def displayCount(self):print "Total Employee %d" % Employee.empCountdef displayEmployee(self):print "Name : ", self.name,  ", Salary: ", self.salary

类的属性

  • dict : 类的属性(包含一个字典,由类的数据属性组成)

  • doc :类的文档字符串

  • name: 类名

  • module: 类定义所在的模块(类的全名是'__main__.className',如果类位于一个导入模块mymod中,那么className.__module__ 等于 mymod)

  • bases : 类的所有父类构成元素(包含了一个由所有父类组成的元组)

私有属性

  • foo: 定义的是特殊方法,一般是系统定义名字 ,类似 init() 之类的。

  • _foo: 以单下划线开头的表示的是 protected 类型的变量,即保护类型只能允许其本身与子类进行访问,不能用于 from module import *

  • __foo: 双下划线的表示的是私有类型(private)的变量, 只能是允许这个类本身进行访问了,字类无法继承

访问私有属性

class Cat():def __init__(self, name, age):self.__name = nameself.age = ageif __name__ == '__main__':cat1 = Cat('喵喵', 22)print(cat1.age)print(cat1.name)

上述无法访问会报错,因为 name 是私有属性

class Cat():def __init__(self, name, age):self.__name = nameself.age = agedef get_name(self):return self.__nameif __name__ == '__main__':cat1 = Cat('喵喵', 22)print(cat1.age)print(cat1.get_name())

类的继承

class 派生类名(基类名)...# 具体案例class Parent:        # 定义父类parentAttr = 100def __init__(self):print "调用父类构造函数"def parentMethod(self):print '调用父类方法'def setAttr(self, attr):Parent.parentAttr = attrdef getAttr(self):print "父类属性 :", Parent.parentAttrclass Child(Parent): # 定义子类def __init__(self):print "调用子类构造方法"def childMethod(self):print '调用子类方法'c = Child()          # 实例化子类
c.childMethod()      # 调用子类的方法
c.parentMethod()     # 调用父类方法
c.setAttr(200)       # 再次调用父类的方法 - 设置属性值
c.getAttr()          # 再次调用父类的方法 - 获取属性值

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

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

相关文章

【独立开发前线】Vol.29 专注于电子邮件签名,也可以依靠SEO年入70万美元

今天要给大家分享的案例是MySignature,一个专注于电子邮件签名的产品; 它的官网是:MySignature: Free Email Signature Generator 提到电子邮件签名,很多人想到的肯定是“那不是电子邮件结尾的几行图文介绍吗,这也能做…

nginx.conf相关

nginx.conf相关 精确匹配路径,用于不含正则表达式的 uri 前,如果匹配成功,不再进行后续的查找; ^~ 用于不含正则表达式的 uri 前,表示如果该符号后面的字符是最佳匹配,采用该规则,不再进行后续…

数组逆序(以字符串逆序为例)

#include <iostream> #include <cstring> using namespace std; void my_reverse(char* p) //第一种 {int len strlen(p); //获取字符串长度for (int i 0; i < len / 2; i) //无论长度是奇数还是偶数&#xff0c;该for循环都能解决{char t p[i];p[i]…

ZNC3罗德与施瓦茨ZNC3网络分析仪

181/2461/8938产品概述&#xff1a; 罗德与施瓦茨 ZNC3 网络分析仪的工作频率范围为 9 kHz 至 3 GHz&#xff0c;面向移动无线电和电子产品行业的应用。它具有双向测试装置&#xff0c;用于测量有源和无源 DUT 的所有四个 S 参数。此外&#xff0c;它还提供适合开发和生产中各…

最新2024年增强现实(AR)营销指南(完整版)

AR营销是新的最好的东西&#xff0c;就像元宇宙和VR营销一样。利用AR技术开展营销活动可以带来广泛的利润优势。更不用说&#xff0c;客户也喜欢AR营销&#xff01; 如果企业使用AR&#xff0c;71%的买家会更多地购物。40%的购物者准备在他们可以在AR定制的产品上花更多的钱。…

【Linux】详解文件系统以及周边知识

一、磁盘的基本知识 磁盘中可以被划分成一个一个的环&#xff0c;每个环都是一个磁道。每个磁道又可以被均分成一个一个的扇区&#xff0c;扇区是磁盘IO的基本单位&#xff08;想要修改扇区中的一个比特位就必须把该扇区的全部比特位都加载到内存中&#xff09;。磁盘中的盘面&…

【Linux】详解软硬链接

一、软硬链接的建立方法 1.1软链接的建立 假设在当前目录下有一个test.txt文件&#xff0c;要对其建立软链接&#xff0c;做法如下&#xff1a; ln就是link的意思&#xff0c;-s表示软链接&#xff0c;test.txt要建立软链接的文件名&#xff0c;后面跟上要建立的软链接文件名…

网页的皮肤——css

目录 1.css的编写方式 2.css选择器 3.css样式属性 4.css包围盒 5.css中的display 6.css中的定位 7.css浮动与清除 8.弹性容器 9.自定义字体 1.css的编写方式 1.优先级最高的行内模式 直接使用style属性写在开始标签中 针对一个标签 2.内部样式表 …

魔改一个过游戏保护的CE

csdn审核不通过 网易云课堂有配套的免费视频 int0x3 - 主页 文章都传到github了 Notes/外挂/魔改CE at master MrXiao7/Notes GitHub 为什么要编译自己的CE 在游戏逆向的过程中&#xff0c;很多游戏有保护&#xff0c;我们运行原版CE的时候会被检测到 比如我们开着CE运…

MySQL数据库MHA高可用集群

前言 MySQL 数据库 MHA&#xff08;Master High Availability&#xff09;高可用集群是一种用于提高 MySQL 数据库可用性的解决方案。它通过自动故障切换和监控来确保数据库系统在主服务器发生故障时能够快速切换到备用服务器&#xff1b;在 MHA 高可用集群中&#xff0c;Mast…

单细胞分析|映射和注释查询数据集

reference映射简介 在本文中&#xff0c;我们首先构建一个reference&#xff0c;然后演示如何利用该reference来注释新的查询数据集。生成后&#xff0c;该reference可用于通过cell类型标签传输和将查询cell投影到reference UMAP 等任务来分析其他查询数据集。值得注意的是&…

享元模式

通过共享的方式高效的支持大量细粒度的对象。在有大量对象时&#xff0c;有可能会造成内存溢出&#xff0c;我们把其中共同的部分抽象出来&#xff0c;如果有相同的业务请求&#xff0c;直接返回在内存中已有的对象&#xff0c;避免重新创建。 using System; using System.Col…

Linux - 第五节

sudo用不了 - 新建的普通用户 以管理员的身份&#xff0c;去修改etc/sudoers配置下的文件&#xff0c;添加白名单 代码的编译 gcc - 只能用于编译C语言 g - 既能用来编译C语言&#xff0c;也能用来编译C ggc的简易用法 预处理 预处理功能主要包括宏定义,文件包含,条件编…

突破编程_C++_C++14新特性(变量模板)

1 变量模板在 C14 中的引入与扩展 在 C14 中&#xff0c;变量模板的引入与扩展为编程带来了许多便利&#xff0c;特别是在泛型编程方面。这一特性允许我们直接定义模板变量&#xff0c;而不需要将其包装在模板类或模板函数中&#xff0c;从而使得代码更加直观和简洁。 首先&a…

vue nextTick的简化版

以下内容来源于通义千问 的回答 在 Vue.js 中&#xff0c;$nextTick 的核心功能是在下次 DOM 更新循环结束之后执行延迟回调。这是因为 Vue 使用异步更新队列来优化渲染性能&#xff0c;当数据发生变化时&#xff0c;并不会立即更新 DOM&#xff0c;而是在同一事件循环结束时批…

2024年 前端JavaScript 进阶 第2天 笔记

2.1-内容和创建对象方式 2.2-164-构造函数 2.3-new实例化执行过程 2.4-实例成员和静态成员 2.5-基本包装类型 2.6-0bject静态方法 2.7-数组reduce累计方法 对象数组 加0 2.7-数组find、every和转换为真 --说明手册文档 MDN Web Docs 2.8-字符串常见方法 2.3 String 1.常见实例…

【微服务框架】微服务简介

个人名片&#xff1a; &#x1f43c;作者简介&#xff1a;一名大三在校生&#xff0c;喜欢AI编程&#x1f38b; &#x1f43b;‍❄️个人主页&#x1f947;&#xff1a;落798. &#x1f43c;个人WeChat&#xff1a;hmmwx53 &#x1f54a;️系列专栏&#xff1a;&#x1f5bc;️…

论文复现2: YOLOv5 DeepSORT视频追踪

YOLOv5 DeepSORT是视频检测跟踪算法,结合了YOLOv5的目标检测和DeepSORT的目标跟踪能力。它具备实时性能、高准确性以及稳定的目标跟踪能力,为行人和车辆等实时监测和分析提供了有效的解决方案。 直接在github找的综合代码,没有做分别训练,因为我要实现的就一个类,所以直接…

2010-2021年各省碳排放测算数据(含原始数据+计算过程+结果)

2010-2021年各省碳排放测算数据&#xff08;含原始数据计算过程结果&#xff09; 1、时间&#xff1a;2010-2021年 2、指标&#xff1a;原煤(万吨)、原煤(万吨CO2)、焦炭(万吨)、焦炭(万吨CO2)、汽油(万吨)、汽油(万吨CO2)、煤油(万吨)、煤油(万吨CO2)、柴油(万吨)、柴油(万吨…

比较转录组分析揭示了116种山茶属(Camellia)植物的深层系统发育和次生代谢物演化-文献精读分享1

Comparative transcriptomic analysis unveils the deep phylogeny and secondary metabolite evolution of 116 Camellia plants &#xff0c;比较转录组分析的一篇文献。 SUMMARY 茶花植物包括200多个种类&#xff0c;具有极大的多样性和巨大的经济、观赏和文化价值。我们对…