首页 > 编程语言 >python 类与对象相关知识简记

python 类与对象相关知识简记

时间:2024-09-22 22:21:51浏览次数:3  
标签:object classinfo python 子类 知识 对象 简记 实例 属性

简单记录一下python对象相关的知识

一、类与对象

1、类

简单理解,类是对象的定义方法

python中类用class定义,格式如下

class 类名:

        类的内容

2、对象

对象可以理解为属性加方法,对象的特征就是属性,对象的行为就是方法

实例对象 类的实例化,python中实例化格式如下

实例对象名 = 类名()

调用方法时 实例对象名.方法名()

3、self

c++的this,指代对象自身

4、公有与私有

所有成员默认为公有成员,私有成员定义时名字前面加__(双下滑线)

可以认为python没有真正的私有公有区分,私有是伪私有

通过 实例._类名__私有成员名,可以访问私有成员

5、组合

一个类包含其它类的实例化,可称为类的组合

二、属性与方法

1、属性

对象的特征,表现形式一般为各种量

2、方法

对象的行为,表现形式一般为各种函数

3、属性与方法的冲突

属性与方法同名,则属性覆盖方法

4、魔法方法

举例:构造方法__init__()

魔法方法有很多,有机会再具体整理

5、绑定

方法有实例才能调用,称为绑定

三、继承

1、继承

形式:

class 子类名(父类名):

类成员

super():自动找到父类的方法,方便访问父类成员

2、多继承

形式:

class 子类名(父类1名,父类2名,..., 父类3名):

类成员

多继承易引发混乱,尽量避免使用

四、内置函数(BIF)

简单记录几种常见的内置函数

1、查询父子关系 issubclass(class, classinfo)

如果第一个参数(class)是第二个参数(classinfo)的一个子类,则返回True,否则返回False。

有以下几点要注意

(1)一个类被认为是其自身的子类。

(2)classinfo可以是类对象组成的元组,只要class是其中任何一个候选类的子类,则返回True。

(3)在其他情况下,会抛出一个TypeError异常。isinstance

2、查询实例关系 isinstance(object, classinfo)

如果第一个参数(object)是第二个参数(classinfo)的实例对象,则返回True,否则返回False。

有以下几点要注意

(1)如果object是classinfo的子类的一个实例,也符合条件。

(2)如果第一个参数不是对象,则永远返回False。

(3)classinfo可以是类对象组成的元组,只要object是其中任何一个候选类的子类,则返回True。

(4)如果第二个参数不是类或者由类对象组成的元组,会抛出一个TypeError异常。

3、查询属性存在 hasattr(object, name)

attr即attribute的缩写,属性的意思。测试一个对象里是否有指定的属性。

第一个参数(object)是对象,第二个参数(name)是属性名(属性的字符串名字)。

4、获取指定属性 getattr(object, name[, default])

返回对象指定的属性值,如果指定的属性不存在,则返回default(可选参数)的值;若没有设置default参数,则抛出ArttributeError异常。

5、设置指定属性 setattr(object, name, value)

设置对象中指定属性的值,如果指定的属性不存在,则会新建属性并赋值。

6、删除指定属性 delattr(object, name)

删除对象中指定的属性,如果属性不存在,则抛出AttributeError异常。

标签:object,classinfo,python,子类,知识,对象,简记,实例,属性
From: https://blog.csdn.net/well_fly/article/details/142426867

相关文章

  • Chainlit集成LlamaIndex实现知识库高级检索(简单融合寻回器)
    检索原理**简单融合寻回器**简单融合寻回原理,是利用多个检索器,融合查询最终的结果返回给LLM。此检索器还将通过生成与原始问题相关的问题,用相关问题再次检索多个检索器的数据,把原始问题和相关问题经过多个检索器检索结果整理后交给LLM最最终回复。本次代码示例中,使用简......
  • Python&C++迭代器比较
    Python&C++迭代器比较内容在Python和C++中,迭代器的概念都有类似的作用,但它们的实现方式和细节上存在一些区别。下面我们将从迭代器的定义、特性以及Python和C++中的不同点来进行对比。1.什么是迭代器?迭代器是一种对象,它允许你遍历一个集合(如列表、字典、字符串等)中......
  • 华科python与人工智能实践(公选)教程
    python基础软件下载1.python下载安装点击此链接进入官网windows下载地址点击箭头处链接下载最新版本,进入页面后下拉根据你的机器下载对应版本,一般人使用的是X86架构windos系统,下载箭头所指即可若是不知道CPU架构,可见查看cpu架构,x86还是arm下载后根据指引进行安装即可2.......
  • (开题)flask框架大学生创新成果信息管理系统的设计与实现(程序+论文+python)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景在当今快速发展的社会中,创新能力已成为衡量大学生综合素质的重要指标之一。随着高校对创新教育的不断重视,大学生参与科研、创业及各类创新......
  • (开题)flask框架宠物医院预约系统(程序+论文+python)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着宠物成为越来越多家庭的重要成员,宠物医疗行业迎来了快速发展。然而,传统的宠物医院预约方式往往依赖于电话或现场排队,这不仅效率低下,还......
  • Chainlit集成LlamaIndex实现知识库高级检索(自动合并检索)
    检索原理**自动合并检索**自动合并检索原理,和我洗的上一篇文章的检索方案:将文本分割成512大小(一般对应段落大小)和128(一般对句子大小不是严格的句子长度)大小两种分别存储到索引库,再用llama_index的简单融合寻回器,分别从这里个向量库查询。将查询结果融合排序后交给LLM的......
  • python爬虫连载 HTTP请求头
    HTTP头部信息HTTP由众多头域组成,每个头域由域名、冒号、域值三部分组成。域名是大小写无关的, 请求头:1GET代表的是请求方式,HTTP/1.1表示使用HTTP1.1协议标准。2Host头域,用于指定请求资源的Intenet主机和端口号,必须表示请求URL的原始服务器或网关的位置。HTTP/1.1请求必须......
  • Python 客户端类库之paho-mqtt学习总结
    实践环境Python3.9.13paho-mqtt2.1.0简介EclipsePahoMQTTPython客户端类库实现了MQTT协议版本5.0,3.1.1,和3.1。该类库提供一个客户端类,允许应用连接到MQTT代理并发布消息,订阅主题并检索发布的消息。同时还提供了一个写其它辅助函数,使向MQTT服务器发布一次性消息变......
  • appium+python自动化代码示例
    fromselenium.webdriver.common.byimportByimporttime#设置Appium连接参数caps={"platformName":"Android","platformVersion":"7.1.2",#根据夜神模拟器的Android版本进行修改"deviceName":"127.0.0.......
  • 开放食物营养库python SDK套件:openfoodfacts-python
    官网源码:GitHub-openfoodfacts/openfoodfacts-python:......