这几个Python内置函数你都知道吗

divmod() 

divmod() 是一个 Python 内置函数,用于同时返回商和余数。它接受两个参数,第一个参数是被除数,第二个参数是除数,返回一个包含两个值的元组,第一个值是商,第二个值是余数。

示例用法如下:

result = divmod(10, 3)
print(result)  # 输出 (3, 1),10 除以 3 的商为 3,余数为 1

divmod() 函数常用于需要同时获取商和余数的情况,比如在对列表进行分页时可以方便地计算出页数和剩余元素个数。

enumerate() 

enumerate() 是 Python 中的一个内置函数,用于将一个可迭代对象(如列表、元组、字符串等)组合为一个索引序列,同时返回索引和值。它常用于在迭代过程中获取元素的索引和值。

示例用法如下:

my_list = ['apple', 'banana', 'cherry']
for index, value in enumerate(my_list):
    print(f"Index: {index}, Value: {value}")

输出:
yamlCopy code
Index: 0, Value: apple
Index: 1, Value: banana
Index: 2, Value: cherry

在上面的示例中,enumerate(my_list) 返回一个迭代器,每次迭代会返回一个元组,包含当前元素的索引和值。通过使用 enumerate(),可以更方便地在循环中获取元素的索引和值。

isinstance() 

isinstance() 是 Python 中用于检查一个对象是否是指定类或类型的实例的内置函数。它的语法如下:

isinstance(object, classinfo)

其中,object 是要检查的对象,classinfo 可以是一个类或者一个类型(如 int、str、list 等)。如果 object 是 classinfo 类型的实例(或者是其子类的实例),则返回 True,否则返回 False。

示例用法如下:

x = 5
print(isinstance(x, int))  # 输出 True,因为 x 是 int 类型的实例

y = "Hello"
print(isinstance(y, str))  # 输出 True,因为 y 是 str 类型的实例

z = [1, 2, 3]
print(isinstance(z, list))  # 输出 True,因为 z 是 list 类型的实例

isinstance() 在判断对象类型时很有用,特别是在编写需要处理不同类型对象的代码时。

zip() 

zip() 是 Python 中的一个内置函数,用于将多个可迭代对象组合成一个元组序列。它接受多个可迭代对象作为参数,返回一个迭代器,每次迭代会返回一个元组,包含每个可迭代对象当前位置的元素。

示例用法如下:

names = ["Alice", "Bob", "Charlie"]
ages = [25, 30, 35]

for name, age in zip(names, ages):
    print(f"{name} is {age} years old")

输出:
csharpCopy code
Alice is 25 years old
Bob is 30 years old
Charlie is 35 years old

在这个示例中,zip(names, ages) 将 names 和 ages 两个列表组合起来,返回一个迭代器,每次迭代会返回一个元组,包含 names 和 ages 中对应位置的元素。这样可以方便地同时遍历多个列表,并对应处理它们的元素。

locals() 

locals() 是一个内置函数,用于返回当前作用域中的所有局部变量和它们的值组成的字典。你可以在函数内部调用 locals() 来获取当前函数的局部变量。注意,locals() 返回的是一个字典,其中的内容是实际变量的引用,修改这个字典中的内容不会影响到实际变量。示例如下:

def my_function():
    a = 1
    b = 2
    print(locals())
my_function()


输出:
{'a': 1, 'b': 2}

在实际开发中,通常不建议过多地依赖 locals() 函数来操作变量,因为它会使代码变得难以理解和维护。通常情况下,更好的做法是明确地使用变量名来访问和操作变量。

globals()

globals() 是一个内置函数,用于返回全局作用域中的所有全局变量和它们的值组成的字典。你可以在任何地方调用 globals() 来获取全局作用域中的变量。与 locals() 类似,globals() 返回的也是一个字典,其中的内容是实际变量的引用,修改这个字典中的内容会影响到全局变量。示例如下:

a = 1
b = 2

def my_function():
    c = 3
    print(globals())

my_function()

输出:
sqlCopy code
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x7fbf9c7a19a0>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': 'main.py', '__cached__': None, 'a': 1, 'b': 2, 'my_function': <function my_function at 0x7fbf9c7a7d30>}

在实际开发中,一般不建议过多地使用 globals() 函数来操作全局变量,因为它可能会导致代码不够清晰和可维护。通常情况下,最好明确地使用变量名来访问和操作全局变量。

vars() 

vars() 是 Python 中的一个内置函数,用于返回对象的 __dict__ 属性,或者返回当前作用域的变量和值的字典。

对于普通对象,vars(obj) 返回对象 obj 的 __dict__ 属性,如果对象没有 __dict__ 属性,则返回 TypeError。__dict__ 属性是一个字典,包含了对象的属性和值。

示例:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

p = Person("Alice", 30)
print(vars(p))  # 输出 {'name': 'Alice', 'age': 30}

对于模块、类或实例,vars() 返回该对象的 __dict__ 属性,它包含了该对象的所有属性和方法。

示例:

class MyClass:
    class_variable = "class_variable_value"

    def __init__(self):
        self.instance_variable = "instance_variable_value"

    def method(self):
        pass

print(vars(MyClass))  # 输出 {'__module__': '__main__', 'class_variable': 'class_variable_value', ...}

如果不提供参数,则 vars() 返回当前作用域的变量和值的字典。

示例:

x = 10
y = 20
print(vars())  # 输出 {'x': 10, 'y': 20}

vars() 函数在调试和动态属性操作时很有用,可以方便地查看对象的属性和值,或者获取当前作用域的变量。

操作对象属性的函数

getattr()、setattr()、hasattr() 和 delattr() 这四个函数是 Python 中用于操作对象属性的函数,它们分别用于获取、设置、检查和删除对象的属性。

getattr(object, name[, default]):获取对象 object 的属性 name 的值。如果属性不存在,可以提供一个默认值 default,如果不提供默认值且属性不存在,会引发 AttributeError 异常。

示例:

class Person:
    name = "John"
    age = 30

p = Person()
print(getattr(p, "name"))  # 输出 "John"
print(getattr(p, "age"))   # 输出 30
print(getattr(p, "gender", "Male"))  # 输出 "Male",因为 gender 属性不存在

setattr(object, name, value):设置对象 object 的属性 name 的值为 value。如果属性不存在,会创建一个新的属性。

示例:

class Person:
    name = "John"
    age = 30

p = Person()
setattr(p, "age", 40)
setattr(p, "gender", "Male")
print(p.age)     # 输出 40
print(p.gender)  # 输出 "Male"

hasattr(object, name):检查对象 object 是否具有属性 name。如果对象具有该属性,则返回 True,否则返回 False。

示例:

class Person:
    name = "John"
    age = 30

p = Person()
print(hasattr(p, "name"))  # 输出 True
print(hasattr(p, "gender"))  # 输出 False

delattr(object, name):删除对象 object 的属性 name。如果属性不存在,会引发 AttributeError 异常。

示例:

class Person:
    name = "John"
    age = 30

p = Person()
delattr(p, "age")
print(hasattr(p, "age"))  # 输出 False

这些函数在操作对象的属性时很有用,可以灵活地对属性进行获取、设置、检查和删除操作

更多内置函数可以查看:https://www.runoob.com/python3/python3-built-in-functions.html

查看原文:这几个Python内置函数你都知道吗

关注公众号 "字节航海家" 及时获取最新内容

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Laravel03 路由到控制器与连接数据库

Laravel03 路由到控制器与连接数据库 1. 路由到控制器2. 连接数据库 1. 路由到控制器 如下图一些简单的逻辑处理可以放在web.php中&#xff0c;也就是路由的闭包函数里面。但是大的项目&#xff0c;我们肯定不能这么写。 为什么保证业务清晰好管理&#xff0c;都应该吧业务逻辑…

设计模式(三)建造者模式

相关文章设计模式系列 1.建造者模式简介 定义 建造者模式&#xff08;builder&#xff09;&#xff0c;将一个复杂对象的构建与它的表示分离&#xff0c;使得同样的构建过程可以创建不同的表示。 简介 建造者模式&#xff08;builder&#xff09;是创建一个复杂对象的创建型…

全面介绍HTML的语法!轻松写出网页

文章目录 heading(标题)paragraph(段落)link(超链接)imagemap(映射)table(表格)list(列表)layout(分块)form(表单)更多输入:datalistautocompleteautofocusmultiplenovalidatepatternplaceholderrequired head(首部)titlebaselinkstylemetascriptnoscript iframe HTML&#xff…

【刷题】leetcode 1544.整理字符串

刷题 1544.整理字符串思路一&#xff08;模拟栈速解版&#xff09;思路二 &#xff08;原地算法巧解版&#xff09;思路三&#xff08;C栈版&#xff09; Thanks♪(&#xff65;ω&#xff65;)&#xff89;谢谢阅读&#xff01;&#xff01;&#xff01;下一篇文章见&#xff…

前端学习---- 前端HTML基本元素的介绍

一&#xff1a;显示相关的HTML基础知识 1. 推荐的前端编写工具 2. VScode的html速写规则&#xff08;从a标签开始再用&#xff09; ①、&#xff01;&#xff1a;代表生成html的基本框架元素 ②、html元素&#xff1a;直接书写html,不需要加<>,按回车会自动生成 ③、{}…

linux下执行文件包含^M,将window文件格式内容转为linux格式

查看文件内容 cat -v jvm_options 报错信息 ./bin/install-plugin.sh: /bigdata/opt/s/seatunnelsgg/apache-seatunnel-2.3.4/mvnw: /bin/sh^M: bad interpreter: No such file or directory install connector : connector-selectdb-cloud安装工具 yum install -y dos2uni…

YOLOv9中的“ADown”结构!

ADown结构出炉啦&#xff0c;收藏起来写论文用&#xff01; 1.代码&#xff1a; 代码路径&#xff1a;yolov9-main->models->common.py&#xff0c;代码如下&#xff1a; class ADown(nn.Module):def __init__(self, c1, c2): # ch_in, ch_out, shortcut, kernels, gro…

Z 字形变换

题目链接 Z 字形变换 题目描述 注意点 s 由英文字母&#xff08;小写和大写&#xff09;、‘,’ 和 ‘.’ 组成1 < numRows < 1000 解答思路 方法一是模拟整个Z字形变换思路&#xff0c;使用一个二维数组存储变换后的矩阵&#xff0c;首先需要确定这个矩阵的行数row和…

PDF控件Spire.PDF for .NET【安全】演示:从加密的 PDF 文档中删除密码

Spire.PDF for .NET 是一款独立 PDF 控件&#xff0c;用于 .NET 程序中创建、编辑和操作 PDF 文档。使用 Spire.PDF 类库&#xff0c;开发人员可以新建一个 PDF 文档或者对现有的 PDF 文档进行处理&#xff0c;且无需安装 Adobe Acrobat。 E-iceblue 功能类库Spire 系列文档处…

C++11右值引用

文章目录 左值左值引用 右值右值引用左值引用和右值引用左值引用和右值引用总结 右值引用使用场景和意义左值引用的使用场景左值引用的缺点右值引用移动构造移动赋值 右值引用的其他使用场景 万能引用完美转发完美转发的实际应用场景 C11之前就有了引用的语法&#xff0c;而C11…

Rust升级慢,使用国内镜像进行加速

背景 rustup 是 Rust 官方的跨平台 Rust 安装工具&#xff0c;国内用户使用rustup update的时候&#xff0c;网速非常慢&#xff0c;可以使用国内的阿里云镜像源来进行加速 0x01 配置方法 1. Linux与Mac OS用户配置环境变量 修改~/.bash_profile文件添加如下内容&#xff1…

Three.js-04轨道控制器

1.导入 说明&#xff1a;相机围绕目标进行轨道运动。也就是可以通过鼠标拖拽进行移动视角。 import { OrbitControls } from three/addons/controls/OrbitControls.js; 2.使用 说明&#xff1a;构造controls对象&#xff0c;再调用update方法&#xff1b;为了使效果更为明显…

【数据结构与算法】常用算法 前缀和

&#x1f389;&#x1f389;欢迎光临&#x1f389;&#x1f389; &#x1f3c5;我是苏泽&#xff0c;一位对技术充满热情的探索者和分享者。&#x1f680;&#x1f680; &#x1f31f;特别推荐给大家我的最新专栏《数据结构与算法&#xff1a;初学者入门指南》&#x1f4d8;&am…

刘知远LLM——Transformer与预训练模型

文章目录 注意力机制原理介绍注意力机制的各种变式注意力机制的特点 Transformer结构概述Transformer整体结构 输入层byte pair encodingpositional encoding Transformer BlockEncoder BlockMulti-Head Attention Decoder Block其他tricks总结 预训练语言模型语言建模概述预训…

DP读书:《半导体物理学(第八版)》(一)绪论 3min速通

DP读书&#xff1a;《半导体物理学&#xff08;第八版&#xff09;》刘恩科 3min速通半导体物理之绪论 DP读书&#xff1a;《半导体物理学&#xff08;第八版&#xff09;》刘恩科绪论第一章 半导体中的电子状态1.1 半导体的晶格结构和结合性质1.1.1 金刚石型结构和共价键1.1.2…

详解三种网络适配器:HBA、NIC 和 CNA

目录 前言&#xff1a; 一、主机总线适配器 (HBA) HBA的特点 二、网络接口卡 (NIC) NIC的特点 三、并发网络适配器 (CNA) CNA的特点 四、HBA、NIC 与 CNA的区别 五、结论 前言&#xff1a; 网络中的主机总线适配器 (HBA)、网络接口卡 (NIC) 和并发网络适配器 (CNA) 是…

视频号视频下载教程:如何把微信视频号的视频下载下来

视频号下载相信不少人都多少有一些了解&#xff0c;但今天我们就来细说一下关于视频号视频下载的相关疑问&#xff0c;以及大家经常会问到底如何把微信视频号的视频下载下来&#xff1f; 视频号视频下载教程 视频号链接提取器详细使用指南&#xff0c;教你轻松下载号视频&…

关于 cocos creator 如何打包抖音字节小游戏步骤一

1、cocos creator打开引擎&#xff0c;在顶部选择构建之后&#xff0c;在选择点击构建(ps:具体看项目组的大小&#xff0c;如果是一个简单的不多资源一般不到一分钟&#xff0c;如果项目很大&#xff0c;就至少半个小时以上)&#xff0c;之后 成功构建之后如下所示&#xff1a;…

欢迎免费申报讯方技术HarmonyOS人才训练营!

在今年1月备受瞩目的鸿蒙生态千帆启航仪式上&#xff0c;华为宣布&#xff1a;HarmonyOS NEXT星河预览版正式面向开发者开放申请&#xff0c;意味着鸿蒙将建立更广泛的生态系统&#xff0c;迎来更多的应用和软硬件产品&#xff0c;加速自我技术迭代&#xff0c;同时推动华为全场…

python 进程笔记二(通讯) (概念+示例代码)

1、为什么要掌握进程间通信 Python代码效率由于受制于GIL全局锁限制&#xff0c;多线程不能利用多核CPU来加速&#xff0c;而多进程方式却可以绕过GIL限制, 发挥多CPU加速的优势&#xff0c;达到提高程序的性能的目的。 然而进程间通信却是不得不考虑的问题。 进程不同于线程&a…