【内置函数】——高级编程——如桃花来

news2024/9/23 15:32:02

目录索引

  • ==1. hasattr():==
  • ==2. getattr():==
    • 有:
    • 没有则报错:
  • ==3. setattr():==
  • ==4. delattr():==
  • ==5. issubclass():==
  • ==6. isinstance():==
    • 判断前面是不是属于后面的类型:
    • 判断前面是不是属于后面的类型之一:
    • 判断前面是不是属于后面的实例化对象:

内置函数将会给我们提供一些简单的方法供我们使用,这是python解释器自带的,不用我们再进行下载。

  • 我们先创建一个类,用于后面举例子时使用,默认携带该例子
class Person(object):
    def __init__(self,name,age,sex):
        self.name = name
        self.age = age
        self.sex = sex
    
    def run(self):
        print(f"{self.name}的年龄是{self.age}性别是{self.sex}")

people = Person("小明",18,"男")
people.run()

1. hasattr():

has+attr,用于判断对象有没有这个属性,有则返回True,没有则返回False

print(hasattr(Person,"age"))#如果第一个参数是类名,无论有没有属性都是False
print(hasattr(people,"age"))
print(hasattr(people,"height"))

第一个参数一般是实例化对象的变量名,第二个参数则是要测的属性。

呈现效果:
在这里插入图片描述

2. getattr():

顾名思义:get+attr,获取有属性的属性值,有就返回,否则就会报错

有:

print(getattr(people,"name"))

在这里插入图片描述

没有则报错:

print(getattr(people,"height"))

在这里插入图片描述

3. setattr():

set+attr,用于设置属性值,无则增,有则改

setattr(people,"height",180)#增加了一个属性
print(hasattr(people,"height"))#变为了True
setattr(people,"sex","女")
print(getattr(people,"sex"))#变成了"女"

第一个参数是实例化对象名,第二个参数是属性,第三个参数是给属性设置的值

4. delattr():

del +attr,用于删除属性值

delattr(people,"name")
print(hasattr(people,"name"))#变成了False

5. issubclass():

is+sub+class,用于判断前面这个类是不是后面这个类的子类,如果是则返回True,否则返回False

class Person1(Person):
    pass

class Person2(object):
    pass

print(issubclass(Person1,Person))
print(issubclass(Person2,Person))

注意: 两个参数都是类名
在这里插入图片描述

6. isinstance():

is+instance,是例子吗?该函数有三个方法:

判断前面是不是属于后面的类型:

a = 3
print(isinstance(a,int))#True
print(isinstance(a,str))#False

判断前面是不是属于后面的类型之一:

a = 3
print(isinstance(a,(int,str)))#True
print(isinstance(a,(str,list)))#False

判断群用括号包裹即可,只要其中有一个符合就返回True

判断前面是不是属于后面的实例化对象:

print(isinstance(people,Person))#True
print(isinstance(people,Person1))#False

isinstance()的用法非常广泛:

  • 判断函数类型,可单可群
  • 判断是否是实例化对象

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

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

相关文章

百度网盘密码数据兼容处理

文章目录 一、问题描述二、代码实现1. 配置类2. 数据库配置3. config 配置类4. AOP 通知类5. 数据层6. 业务层7. 实体类 三、测试及结果 一、问题描述 需求: 对百度网盘分享链接输入密码时尾部多输入的空格做兼容处理。 分析: ① 在业务方法执行之前对所…

目标检测YOLO(V1、V2、V3)入门

one-stage和two-stage的区别 YOLO常见的指标 YOLO V1 yolo v1架构解读 yolo v1损失函数 NMS非极大值抑制 yolo v1版本的问题 重叠在一起的物体不好分类,只是一个单分类问题多标签问题(狗和哈士奇) v2和v1的区别 v2网络结构 batch normaliz…

【iOS】---pthread,NSThread

在iOS中多线程开发有四种方式,在之前我们浅浅了解了一下GCD,这期来看看pthread和NSThread pehread pthread简介 pthread 是一套通用的多线程的 API,可以在Unix / Linux / Windows 等系统跨平台使用,使用 C 语言编写,…

Redis持久化之RDB高频问题

1、RDB是如何应用的? 因为记录的是操作命令,而不是实际的数据,所以,用 AOF 方法进行故障恢复的时候,需要逐一把操作日志都执行一遍。如果操作日志非常多,Redis 就会恢复得很缓慢,影响到正常使用…

ApacheBench网站压力测试

ApacheBench (简称ab)是一个指令列程式,可用于网站压力测试,亦可用于发起CC攻击,请不要滥用哦。ApacheBench (简称ab)是一个指令列程式,可用于网站压力测试。如果已经安装过Apache&a…

Linux基本指令----上

Linux基本指令----上 ls指令pwd指令cd指令touch指令mkdir指令rmdir指令&&rm指令man指令cp指令mv指令cat指令echo指令more指令less指令head指令tail指令结语 ls指令 语法: ls [选项] [目录或文件] 功能: 对于目录,该命令列出该目录下…

Spring Boot集成ShardingSphere实现按月数据分片及创建自定义分片算法 | Spring Cloud 44

一、前言 在前面我们通过以下章节对数据分片有了基础的了解: Spring Boot集成ShardingSphere实现数据分片(一) | Spring Cloud 40 Spring Boot集成ShardingSphere实现数据分片(二) | Spring Cloud 41 Spring Boot集…

【Windows】高效的本地文件搜索工具《Everything》

🐳好用高效的本地文件搜索工具《Everything》 🧊一、什么是Everything🧊二、为什么选择Everything🧊三、下载Everything🧊四、Everything为什么高效 🧊一、什么是Everything Everything是一个运行于Window…

单片机GD32F303RCT6 (Macos环境)开发 (五)—— IAP代码架构工程

IAP代码架构工程 1、IAP一般分两个工程,一个Bootloader工程,一个Application工程。 这两个工程的差异后面会讲。 IAP架构工程的好处在于产品上线以后,想要升级的话,不用借助烧录器,就可以完成产品的软件升级。 2、Boo…

轻量级团队协作工具推荐,提高效率从选择开始

首先不得不夸一句:爱用Zoho工具的人,都十分自律和高效,因为Zoho旗下有多种简单好用的团队协作工具。 1、Zoho Projects项目管理工具 项目任务进度和团队沟通与协作管理软件Zoho Projects是一款基于web的软件。专为团队协作而设计,…

手写卡尔曼滤波

形象图 里面的my_Kalman.ipynb 和ppt就是了,其他的是原始资料和 辅助函数 链接:https://pan.baidu.com/s/1J1nA–oqoj8OvgbrA3LfbQ?pwd1264 提取码:1264 import numpy as np import matplotlib.pyplot as plt from matplotlib.animation i…

物理验证LVS对bulk(体)的理解和处理技巧

对于物理验证中的LVS,需要对各种物理器件进行SpiceVsGDS的比对,基于现在流行的std-cell的库的设计方法,LVS需要对CMOS器件多相应的处理,这里会涉及到一些具体的物理库的知识和小的技巧,这里结合具体的物理设计和CDL形态…

网络安全战略:如何应对不断变化的威胁环境?

网络安全一直是大家所关注的重点。在如今的数字化时代,网络安全问题日益严峻,网络攻击者使用更加复杂和高级的攻击方式,企图从各种角度入侵和危害我们的计算机网络。因此,我们必须制定一套完善的网络安全战略,以便更好…

LeetCode 牛客单链表OJ题目分享

目录 链表的回文结构相交链表环形链表I环形链表II 链表的回文结构 链接: link 题目描述: 题目思路: 本题思路是找到每一条链表的中间节点,之后逆置中间节点之后的链表,定义两个指针,分别指向逆置后链表的头部的链表的…

8年资深测试总结,性能测试基础知识(大全)你的进阶之路...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 性能测试&#xf…

力扣sql中等篇练习(十七)

力扣sql中等篇练习(十七) 1 计算布尔表达式的值 1.1 题目内容 1.1.1 基本题目信息1 1.1.2 基本题目信息2 1.1.3 示例输入输出 a 示例输入 b 示例输出 1.2 示例sql语句 # 使用SELECT子句中的子查询查询到对应的值 SELECT t1.left_operand,t1.operator,t1.right_operand,cas…

Obsidian templater日记模板添加一个随机问题

Obsidian templater日记模板添加一个随机问题 简介 每天日记里写同样的东西,感觉有点无聊,想问自己一些问题,每天不同。 查到有插件random structural diary,我想要的功能就是这样,但是没懂这个插件怎么放进templat…

【Android入门到项目实战-- 9.3】—— 加速度传感器的详细使用教程

基础知识 加速度传感器可以返回x、y、z三轴的加速度数值,该数值受地心引力的影响。 将手机平放桌面上,x、y、z轴默认为9.81;手机向下z轴为-9.81。 将手机向左倾斜,x轴为正,向右倾斜,x为负; 将手…

Windows11安装hadoop-3.3.0

一、安装Java 1. 下载Java 进入下载页面Java Archive Downloads - Java SE 8 Java SE Development Kit 8u191中 选择适合操作系统的下载文件 在安装好的路径下,将Java目录复制到C:\根目录下,形成C:\Java\jdk1.8.0_191目录结构 2. 设置环境变量 二、…

Docker虚拟化概念

Docker虚拟化概念 1、虚拟化技术的概念 虚拟化技术主要是将物理资源转变为逻辑上可以管理的资源;用以打破物理资源结构之间的壁垒;让计算的原件运行在虚拟的基础之上;而不是直接运行在硬件设备资源上; 说白了就是硬件资源转变成…