Python编程之理解对象

2023-11-11

1、python中的函数和类均是对象,体现在以下几方面:

1)都可以赋值给一个变量

2)可以添加到集合对象中

3)可以作为参数传递给函数

4)可以当作函数的返回值

如果一个函数没有return语句,则默认返回None

2、type,class,object之间的关系

我们在python中定义的所有class(类)均继承至Object,及Object是python中所有类继承的基类,可以称之为顶层类,

type是一个类,也是一个对象,而object来自于type,可用__bases__查看对象的父类,他们之间的关系如上图,也可通过下面的程序来验证:

从结果中可以看出,type的父类是object,object的类型是type,而type的类型又是type及是其自身,这样便可以形成了一个完整的类和对象的闭环 ,也从原理上解释了为什么说一切皆对象,如何这里的type不理解,可以去看看C语言中的指针。

3、对象的三个特征

地址、类型、值。查看方式见下图:

4、python中的常见内置类型

None(全局只有一个)

数值

迭代类型:list、bytes、bytearray、memoryview(二进制序列)、range、tuple、str、array

序列类型

映射(dict)

集合:set、frozenset(不可修改的)

上下文管理类型:with语句

其它:模块类型、class和实例、函数类型、方法类型、代码类型、object类型、type类型

5、鸭子类型与多态

6、抽象基类(abc模块)的使用场景

 1)判断某个类的类型(isinstance,这个方法会在它的对象原型链上查找其父类)

2)需要设计一个抽象基类,指定子类必须实现某些方法

6、对象常用操作

1)通过__dict__查询对象部分属性(自省机制)

2)通过dir()查询对象属性,这个方法会列出对象的所有属性(自省机制)

7、上下文管理器协议

使用contextlib装饰器优化后的上下文管理器

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python编程之理解对象 的相关文章

  • Windows 环境配置Github 的SSH key

    今天需要将本机编写的代码提交至github 上 但是push 远程分支提示如下错误信 remote Support for password authentication was removed on August 13 2021 Plea
  • usaco-Cow Pedigrees

    题意 求出n个节点可以构成多少种高为h的二叉树 分析 设左子树节点数x 右子树节点数为n x 1 函数dp表示满足条件的树的个数 则dp n dp x n x 1 对于未知数h dp n dp x dp n x 1 x lt n 2 x i
  • llvm和clang环境配置(续篇)

    关于llvm和clang开发环境的配置之前已经发过一篇 当时是因为llvm官网给的文档省略了很多重要信息 需要额外补充一些信息才能完成环境配置 时隔许久 重新打开llvm官网 发现他们的文档已经更新了 写的非常详细 专门列举了一节用来解释如
  • Java 集合 --- HashMap的底层原理

    Java 集合 HashMap的底层原理 HashMap的下标计算 计算步骤 为什么要 h h gt gt gt 16 为什么数组长度必须是 2 n HashMap的树化 HashMap的扩容 HashMap的put流程 HashMap的线
  • JAVA常用类(IO篇)-DataOutputStream详解

    文方便阅读和理解 本文翻译自源码 适合具有一定数据结构 算法基础且有志专研源码的朋友阅读 初学者请无视 错漏之处 多谢指正 package java io DataOutputStream 可以实现java对象到流的便捷写入 一个应用可以随
  • React 事件处理

    React 元素的事件处理和 DOM 元素的很相似 但是有一点语法上的不同 React 事件的命名采用小驼峰式 camelCase 而不是纯小写 使用 JSX语法时你需要传入一个函数作为事件处理函数 而不是一个字符串 例如 传统的 HTML
  • c语言游戏代码大全直接复制_无法直接复制网页文字?只需一串代码,全网内容任你免费复制!...

    在职场办公时候 经常需要在网上找素材文档 不过现在网上很多网页都有限制性 想要直接复制的话是不可能的 这时候我们该怎么办呢 是望梅止渴还是另寻他家 这里小编为大家分享几招 保准管用 想怎么复制就怎么复制 什么限制都没有 一 0 只需在网页后
  • python中scrapy框架使用flask框架编写api接口

    仅作参考 1在scrapy框架中编写api接口 在与setting py同级处新建api py 在该api py中编写一下代码 from flask import Flask import os app Flask name app rou
  • 【nvivo11plus教程】02_编码与节点

    1 对文档进行编码 1 建立节点 2 使用快速编码栏进行编码 3 将整个文件编码为一个代码 4 范围编码 5 在vivo中编码 6 使用节点昵称加快编码速度 2 取消 增加和查看编码 1 编码带 2 删除编码 3 查看编码邻近区 4 增加编
  • Pandas.read_excel详解

    文章目录 基础知识 语法 参数详解 index col 参数详解 header 参数详解 usecols 参数详解 dtype 其他参数 多表读取 顺带提一句如何用pandas写数据到excel 基础知识 pandas 可以读取多种的数据格
  • DLL load failed while importing win32gui: 找不到指定的程序

    pip install pywin32 226
  • 九、软考2014年上半年软件设计师易错题整理

    文章目录 错题1 错题2 错题3 错题4 错题5 错题6 错题7 错题8 错题9 错题10 错题11 错题12 错题13 错题14 错题15 错题16 错题17 错题18 错题19 错题20 专业英语 错题1 在CPU中 常用来为ALU执行
  • 字节跳动暑期实习生一面面经 大三

    身份 双非本科大三 大二从小程序开始学起前端 之后自学前端 自我介绍 了解box sizing吗 这里脑子没转 说了不太了解 面试官特别好 是会引导着你去回答问题的 了解盒模型吗 了解的 盒模型分为标准盒模型和IE盒模型 标准盒模型是包括m
  • reg型变量怎么赋值_FPGA的wire和reg类型变量

    1 wire型 网络类型变量表示结构实体 如门 之间的物理连接 网络类型变量不能存储值 而且它必须要受到驱动器 如门或连续赋值语句 如assign 的驱动 如果没有驱动器连接到网络类型变量上 则该变量就是高阻的 即值为Z 常用的网络类型变量
  • 完美国际服务器管理修改经验倍数,魔兽地图编辑问题--修改经验倍数

    呵呵 我来说说吧 1 选择英雄 提供了多种英雄选择方式包括技能 能量圈 双击选择英雄的方式 2 点击单位 出现文本提示 可以用在选择英雄的时候 单击想要选择的英雄 出现该英雄拥有技能的文本提示 3 同类物品不能同时携带 当单位身上已经携带该
  • git错误The TLS connection was non-properly terminated解决

    问题描述 在执行hexo d发布文章时候 出现错误 error fatal unable to access https github com huanyouchen huanyouchen github io git gnutls han
  • java OA 系统开发二:数据库设计之oa数据库设计

    一 概述 oa数据库表设计 用户信息表 机构信息表 部门信息表 员工考勤 我的便签 消息管理 邮件管理 登入日志 操作日志 考勤标准 文档类型 考勤统计 我的日程 部门日程表 用户角色中间表 角色管理 角色菜单中间表 菜单父节点 菜单子节点
  • 这篇文章完美的解释了为什么有人不喜欢Spinner,当它在某些主题下出来的非常丑

    这篇文章完美的解释了为什么有人不喜欢Spinner 当它在某些主题下出来的非常丑 http www jcodecraeer com a anzhuokaifa androidkaifa 2015 0105 2264 html
  • 华为OD机试真题 Java 实现【最远足迹】【2022Q4 100分】,附详细解题思路

    目录 一 题目描述 二 输入描述 三 输出描述 四 解题思路 五 Java算法源码 六 效果展示 华为OD机试 2023B卷题库疯狂收录中 刷题点这里 一 题目描述 某探险队负责对地下洞穴进行探险 探险队成员在进行探险任务时 随身携带的记录
  • Java基础小测总结

    1 非抽象实现接口后 实现接口中方法的原则 两同两小一大原则 方法名相同 参数类型相同 子类返回类型小于等于父类方法返回类型 子类抛出异常小于父类方法抛出异常 子类访问权限大于等于父类方法访问权限 2 volatile关键字 被volati

随机推荐

  • 踩坑 calendar.getActualMaximum(calendar.DAY_OF_MONTH)函数

    当使用calendar getActualMaximum calendar DAY OF MONTH 获取每月最后一天时或者获取当季的最后一天时 会出现在二月的时候获取的不准确的情况 问题出现原因 代码没有动过 之前一直是使用这个时间函数来
  • 如何使用数字孪生和人工智能优化制造

    将数字孪生 digital twin 与人工智能 AI 相结合 可以减少甚至消除产品制造过程中的 臆测 几率 降低因不合理的想法实施带来的损失 那么 到底什么是数字孪生 它又是如何使现实中的生产过程变得更加高效的 CXO TALK采访了西门
  • 白嫖 IBM LinuxOne 服务器教程

    白嫖 IBM LinuxOne 教程 1 介绍 1 1前言 LinuxONE Community Cloud是IBM联合Marist大学为学生提供的用于测试应用程序和网站的平台 提供长达120天的免费VPS 温馨提醒 这个 VPS 是 S3
  • 游戏中关于跳跃的函数图像的推导以及应用

    跳跃应该是游戏开发中一个最常见的功能之一 实现的方法也有很多 这里我来讲一个我以前用的一个方法 正常的跳跃 如果使用物理引擎的话 就直接给一个向上的力就可以了 但是有一些游戏 例如跑酷 角色的移动速度都是越来越快的 而如果还是只给一个向上的
  • 【第2篇】VGG——引用最多的论文

    文章目录 摘要 1 引言 2 ConvNet配置 2 1 架构 2 2 配置 2 3 讨论 3 分类框架 3 1 训练 3 2 测试 3 3 实现细节
  • 什么是TPS,什么是QPS,区别是什么?

    一 TPS Transactions Per Second 每秒传输的事物处理个数 即服务器每秒处理的事务数 TPS包括一条消息入和一条消息出 加上一次用户数据库访问 业务TPS CAPS 每个呼叫平均TPS TPS是软件测试结果的测量单位
  • SpringBoot项目jwt生成token集成redis

    业务逻辑 1 用户登录 使用jwt生成token 2 后端把这个token返回给前端 同时把这个token作为key存储在redis中 用户对象作为value 并设置一个过期时间 3 用户以后每次访问都携带这个token 如果这个token
  • Redis--基础知识点--17--rdb_aof

    1 持久化 1 1 什么是持久化 持久化 Persistence 即把数据 如内存中的对象 保存到可永久保存的存储设备中 如磁盘 持久化Redis所有数据保持在内存中 对数据的更新将异步地保存到磁盘上 1 2 持久化的实现方式 快照方式持久
  • Jenkins 自由风格项目 更新网站静态文件

    要想去更新网站必须先创建新的任务 任务名写上网站的名字 现在去更新静态的logo图片是不需要编译的 所以这里不会用到创建maven项目 这里选择构建自由风格的软件项目 无需使用make ant maven去编译 创建好任务之后需要做一些配置
  • Java Controller层异常处理示例【含面试题】

    AI绘画关于SD MJ GPT SDXL百科全书 面试题分享点我直达 2023Python面试题 2023最新面试合集链接 2023大厂面试题PDF 面试题PDF版本 java python面试题 项目实战 AI文本 OCR识别最佳实践 A
  • vscode 内置了 Settings Sync功能

    preface 好尴尬 昨天 刚写完了 通过 settings sync 插件 来同步 vscode 扩展配置 今早 刷 twitter 发现 微软内置了 同步插件 Settings Sync 同步的内容更多 操作更简单 1 客户机A 更新
  • 【C++】list 的使用

    如有侵权 请联系删除 目录 常用操作 要点总结 相关参考资料 常用操作 C 中的list是一种双向链表容器 提供了高效的插入和删除操作 下面是使用list的一些基本操作 包含头文件 在使用list之前 需要包含以下头文件 include
  • Explicit 关键字简介

    Explicit 关键字简介 explicit关键字用来修饰类的构造函数 表明构造函数是显示的 相对的是implicit关键字 首先这个关键字只能用在类内部的构造函数声明上 而不能用在类外部的函数定义上 它的作用是不能进行隐式转换 clas
  • ntp服务器不稳定,NTP服务器的管理如何保持如此准确?

    我们中的许多人对我们的计算机和其他设备偶尔出现问题 保留了准确的时间设置 但是与NTP服务器的快速同步使得一切顺利 但是如果我们自己的设备丢失准确性 NTP服务器如何保持这样准确 今天的问题 照片由LEOL30 Flickr 提供 问题 S
  • 信息化和数字化的本质区别有哪些?

    信息化和数字化的本质区别在于信息化以流程为中心 而数字化以业务为中心 数字化转型与传统信息化的主要区别在于 一方面传统信息化主要涵义是 流程 的信息化 而数字化的主要含义是构建 业务数字化 数字资产化 资产服务化 服务业务化 闭环 通过数字
  • Qt断开信号与槽

    关于信号与槽的研究 DisConnect bool QObject disconnect const QObject sender const char signal const QObject receiver const char me
  • git的安装配置与操作

    一 git 安装与配置 1 git 安装 windows 搜索 git for windows linux yum install y git 查看安装完成 git version git help 2 git 配置 A 配置用户信息 每一
  • android使用隐藏api的方法(使用被@hide的api)

    前言 一开始需要说明的是 Google之所以要将一些API隐藏 指加上 hide标记的public类 方法或常量 是有原因的 其中很大的原因就是Android系统本身还在不断的进化发展中 从1 0 1 1到现在即将问世的Android 2
  • 一个web请求在springboot经历了什么

    写了一个MailServiceController接口 在入口处打上断电 debug启动 可以看到 tomcat embed core 9 0 36 jar 1 run 748 Thread java lang 2 run 61 TaskT
  • Python编程之理解对象

    1 python中的函数和类均是对象 体现在以下几方面 1 都可以赋值给一个变量 2 可以添加到集合对象中 3 可以作为参数传递给函数 4 可以当作函数的返回值 如果一个函数没有return语句 则默认返回None 2 type class