python内置函数 D

python内置函数 D

Python 解释器内置了很多函数和类型,任何时候都能使用。

D

名称描述
delattr删除对象的属性。
dict创建字典对象。
dir列出对象的属性。
divmod同时执行除法运算和取模运算,返回一个包含商和余数的元组。
delattr(object, name)

delattr()是一个内置函数,用于删除对象的属性。它接受两个参数:一个对象和一个字符串,该字符串表示要删除的属性的名称。

  • object:你想要删除属性的对象。
  • name:一个字符串,表示你想要从object中删除的属性的名称。

使用delattr()函数时,如果指定的属性存在,它将被删除;如果不存在,则会引发AttributeError

这是 setattr() 的相关函数。 其参数是一个对象和一个字符串。 其中字符串必须是对象的某个属性的名称。 该函数会删除指定的属性,如果对象允许这样做的话。 例如,delattr(x, 'foobar') 等价于 del x.foobarname 不要求必须是 Python 标识符 (参见 setattr())。

class MyClass:  def __init__(self):  self.my_attribute = "Hello, World!"  # 创建类的实例  
my_instance = MyClass()  # 打印属性,确认它存在  
print(my_instance.my_attribute)  # 输出: Hello, World!  # 使用delattr删除属性  
delattr(my_instance, "my_attribute")  # 尝试访问已删除的属性,将引发AttributeError  
try:  print(my_instance.my_attribute)  
except AttributeError as e:  print(f"属性不存在: {e}")  # 输出: 属性不存在: 'MyClass' object has no attribute 'my_attribute'

delattr()通常用于动态地删除对象的属性,这在某些特殊情况下可能很有用,例如当对象的属性是在运行时动态添加时。然而,在大多数情况下,更好的做法是在类的定义中明确管理属性的添加和删除,以保持代码的清晰和可维护性。

dict(**kwarg)

class dict(**kwarg)

class dict(mapping, **kwarg)

class dict(iterable, **kwarg)

创建一个新的字典。dict 对象是一个字典类。参见 dict 和 映射类型 — dict 了解这个类。

其他容器类型,请参见内置的 listsettuple 类,以及 collections 模块。

dict()是一个内置函数,用于创建字典对象。字典是一种无序的、可变的数据结构,它存储了键值对的集合。可以通过键来快速访问、修改或删除与之相关联的值。

创建一个空字典
my_dict = dict()  # 或my_dict = {}
print(my_dict)  # 输出: {}
创建一个有初始键值对的字典

传递一个包含键值对的列表(每个键值对是一个包含两个元素的列表或元组)给dict()函数来创建一个包含初始数据的字典。

my_dict = dict([('apple', 1), ('banana', 2), ('cherry', 3)])  
print(my_dict)  # 输出: {'apple': 1, 'banana': 2, 'cherry': 3}

或者,可以传递一个包含键值对的可迭代对象,其中每个元素都是一个包含两个元素的元组。

my_dict = dict((('apple', 1), ('banana', 2), ('cherry', 3)))  
print(my_dict)  # 输出: {'apple': 1, 'banana': 2, 'cherry': 3}
从已有的键值对创建字典

也可以使用花括号 {} 和冒号 : 来直接创建字典,这种方式更加常见和简洁。

my_dict = {'apple': 1, 'banana': 2, 'cherry': 3}  
print(my_dict)  # 输出: {'apple': 1, 'banana': 2, 'cherry': 3}
使用关键字参数创建字典

dict()函数也接受关键字参数,其中关键字是键,对应的值是值。

my_dict = dict(apple=1, banana=2, cherry=3)  
print(my_dict)  # 输出: {'apple': 1, 'banana': 2, 'cherry': 3}
字典的常用操作
  • 访问字典中的值:通过键来访问对应的值。

    value = my_dict['apple']  # value 现在是 1
    
  • 修改字典中的值:通过给键分配新的值来修改字典。

    my_dict['apple'] = 10  # 现在 'apple' 的值是 10
    
  • 添加新的键值对:如果键不存在于字典中,给它分配一个值就会添加一个新的键值对。

    my_dict['orange'] = 4  # 添加一个新的键值对 'orange': 4
    
  • 删除键值对:使用del语句或pop()方法来删除键值对。

    del my_dict['banana']  # 删除键为 'banana' 的键值对  
    # 或者  
    value = my_dict.pop('cherry')  # 删除键为 'cherry' 的键值对,并返回其值
    
  • 检查键是否存在:使用in关键字来检查字典中是否包含某个键。

    if 'apple' in my_dict:  print("'apple' is in the dictionary.")
    

字典是Python编程中非常有用的数据结构,因为它们允许你通过键来快速存储和检索值。

dir()

dir()是一个内置函数,用于列出对象的属性。当你对一个对象调用dir()时,它会返回一个包含该对象所有属性的列表,这些属性包括方法、模块、变量等。

  • object(可选):要列出其属性的对象。如果不提供对象,dir()将返回当前作用域中的名称列表。

dir()

dir(object)

如果没有实参,则返回当前本地作用域中的名称列表。如果有实参,它会尝试返回该对象的有效属性列表。

如果对象有一个名为 __dir__() 的方法,则该方法将被调用并且必须返回由属列组成的列表。 这允许实现自定义 __getattr__()__getattribute__() 函数的对象能够定制 dir() 报告其属性的方式。

如果对象未提供 __dir__(),该函数会尽量从对象所定义的 __dict__ 属性和其类型对象中收集信息。 结果列表不一定是完整的,并且当对象具有自定义的 __getattr__() 时还可能是不准确的。

默认的 dir() 机制对不同类型的对象行为不同,它会试图返回最相关而不是最全的信息:

  • 如果对象是模块对象,则列表包含模块的属性名称。
  • 如果对象是类型或类对象,则列表包含它们的属性名称,并且递归查找所有基类的属性。
  • 否则,列表包含对象的属性名称,它的类属性名称,并且递归查找它的类的所有基类的属性。

返回的列表按字母表排序。例如:

# ['__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__']
print(dir())# 列出模块的属性
import struct
# ['__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'struct']
print(dir())
# ['Struct', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_clearcache', 'calcsize', 'error', 'iter_unpack', 'pack', 'pack_into', 'unpack', 'unpack_from']
print(dir(struct))# 列出对象的属性
class Shape:def __dir__(self):return ['area', 'perimeter', 'location']s = Shape()
# ['Shape', '__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 's', 'struct']
print(dir())
# ['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__']
print(dir(Shape))
# ['area', 'location', 'perimeter']
print(dir(s))

备注:因为 dir() 主要是为了便于在交互式时使用,所以它会试图返回人们感兴趣的名字集合,而不是试图保证结果的严格性或一致性,它具体的行为也可能在不同版本之间改变。例如,当实参是一个类时,metaclass 的属性不包含在结果列表中。

dir()函数返回的属性列表是动态的,这意味着它会根据对象的状态和类型变化。因此,在不同的时间点或不同的对象上调用dir()可能会得到不同的结果。

注意:dir()返回的属性列表可能包含一些以单下划线或双下划线开头的特殊属性或方法,这些是Python的内部实现细节,通常不建议直接访问或修改,除非你有明确的理由这样做,并且了解可能带来的后果。

divmod(a, b)

以两个(非复数)数字为参数,在作整数除法时,返回商和余数。若操作数为混合类型,则适用二进制算术运算符的规则。对于整数而言,结果与 (a // b, a % b) 相同。对于浮点数则结果为 (q, a % b),其中 q 通常为 math.floor(a / b),但可能比它小 1。在任何情况下, q * b + a % b 都非常接近 a,如果 a % b 非零,则结果符号与 b 相同,并且 0 <= abs(a % b) < abs(b)

# 简单的整数除法
quotient, remainder = divmod(10, 3)
print(quotient)  # 输出: 3
print(remainder)  # 输出: 1# 浮点数也可以使用,但结果将是整数商和余数
quotient, remainder = divmod(10.0, 3)
print(quotient)  # 输出: 3.0
print(remainder)  # 输出: 1.0# 负数的情况
quotient, remainder = divmod(-10, 3)
print(quotient)  # 输出: -4
print(remainder)  # 输出: 2# 处理余数为负的情况
quotient, remainder = divmod(-10, 4)
print(quotient)  # 输出: -3
print(remainder)  # 输出: 2# 负数的情况
quotient, remainder = divmod(-10, -3)
print(quotient)  # 输出: 3
print(remainder)  # 输出: -1# 负数的情况
quotient, remainder = divmod(10, -3)
print(quotient)  # 输出: -4
print(remainder)  # 输出: -2

注意,当被除数为负数且除数为正数时,结果的余数为负数,且其绝对值小于除数。反之,当除数为负数时,结果的余数为正数,且其绝对值也小于除数的绝对值。

参考:内置函数 — Python 3.12.2 文档

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

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

相关文章

HTML5实现一笔画游戏

HTML5实现一笔画游戏 一笔画问题 一笔画是图论科普中一个著名的问题&#xff0c;它起源于柯尼斯堡七桥问题科普。当时的东普鲁士哥尼斯堡城中有一条河&#xff0c;在这条河上有七座桥&#xff1a; 蓝色的代表河&#xff0c;这条河将城市分开成为四个区域&#xff0c;而七个橙…

深度学习 精选笔记(13.2)深度卷积神经网络-AlexNet模型

学习参考&#xff1a; 动手学深度学习2.0Deep-Learning-with-TensorFlow-bookpytorchlightning ①如有冒犯、请联系侵删。 ②已写完的笔记文章会不定时一直修订修改(删、改、增)&#xff0c;以达到集多方教程的精华于一文的目的。 ③非常推荐上面&#xff08;学习参考&#x…

深入浅出Hive性能优化策略

我们将从基础的HiveQL优化讲起&#xff0c;涵盖数据存储格式选择、数据模型设计、查询执行计划优化等多个方面。会的直接滑到最后看代码和语法。 目录 引言 Hive架构概览 示例1&#xff1a;创建表并加载数据 示例2&#xff1a;优化查询 Hive查询优化 1. 选择适当的文件格…

unity学习(61)——hierarchy和scene的全新认识+模型+皮肤+动画controller

刚刚开始&#xff0c;但又结束的感觉&#xff1f; 1.对hierarchy和scene中的内容有了全新的认识 一定要清楚自己写过几个scene&#xff1b;每个scene之间如何跳转&#xff1b;build setting是add当前的scene。 2.此时的相机需要与模型同级&#xff0c;不能在把模型放在相机下…

odoo中传递上下文

在Odoo中&#xff0c;上下文&#xff08;context&#xff09;是一个非常重要的概念&#xff0c;它允许开发人员在不同的动作、视图或模型间传递信息。上下文通常用于传递特定的标志或变量&#xff0c;这些变量可以影响方法的行为或视图的展示方式。 向表单和动作传递参数 1. …

vue的一些个人理解

个人的一些理解吧 可能不是很全面有的地方可能也不准确 MVVM 的理解 MVVM 是 Model-View-ViewModel 的缩写。MVVM 是一种设计思想。 Model 层代表数据模型&#xff0c;也可以在 Model 中定义数据修改和操作的业务逻辑; View 代表 UI 组件&#xff0c;它负责将数据模型转化成 U…

STM32的USART能否支持9位数据格式话题

1、问题描述 STM32L051 这款单片机。平常的 USART 串口传输是 8 位数据&#xff0c;但是他的项目需要用串口传输 9 位数据。当设置为 8 位数据时&#xff0c;串口响应中断正常。但是&#xff0c;当设置为 9 位数据时&#xff0c;串口就不产生中断了。USART2 的 ISR 寄存器 RXN…

ssh命令——安全远程连接Linux服务器

ssh命令是Secure Shell的简写&#xff0c;其功能是安全地远程连接服务器&#xff0c;ssh是OpenSSH套件中的客户端连接工具&#xff0c;通过SSH加密协议进行远程主机访问&#xff0c;并对远程服务器进行管理。 ssh命令的基本语法格式如下&#xff1a; ssh [选项] 主机名或IP地…

STM32G4高精度定时器的同步功能

1、引言 STM32G474 所含的高精度定时器(HRTIMER)其实包含了多个定时器&#xff0c;多个定时器之间可以单独工作&#xff0c;也可以进行同步&#xff0c;且高精度定时器还能与片上的其他定时器以及其他芯片进行同步&#xff0c;本文将对高精度定时器的同步功能进行介绍。 2、定…

linux安装wxWidgets

概要 在Linux系统中安装erlang时&#xff0c;需要提前安装wxWidgets&#xff01; 官方地址: https://docs.wxwidgets.org gitCode地址&#xff1a;https://gitcode.com/wxWidgets/wxWidgets 下载 下载地址&#xff1a; wget https://github.com/wxWidgets/wxWidgets/releas…

I2S 协议简介

I2S(Inter-IC Sound)是飞利浦公司提出的一种用于数字音频设备之间进行音频数据传输的总线。和 I2C、SPI 这些常见的通信协议一样&#xff0c;I2S 总线用于主控制器和音频 CODEC 芯片之间传输音频数据。 I2S 接口需要 3 根信号线(如果需要实现收和发&#xff0c;那么就要 4 根信…

【Text-to-CAD】基于生成式AI的CAD文件生成工具

Text-to-CAD作为一种机械设计工具,通过简单的文本提示实现CAD文件的智能生成。其开源接口、机器学习支持和Fine Tuning选项为用户提供了高度可定制化的体验。未来的Fine Tuning功能和可能的商业合作有望进一步拓展其在机械设计领域的影响力。 产品概述: 名称: Text-to-CAD类…

Django项目创建和settings设置

2021版本的pycharm有bug,需要将settings.py中 把BASE_DIR后面的/换成, url:统一资源定位符 互联网上每个文件都有一个唯一的url,它包含的信息指出文件的位置以及浏览器应该怎么处理它 语法: protocol://hostname[:port]/path[?query][#fragment] protocol:协议 hostname:主…

【excel】常用的50个函数与基础操作(统计函数)

统计函数 &#xff08;1&#xff09;数组函数操作 1.【SUM】求和 SUM&#xff08;数字1&#xff0c;数字2&#xff0c;数字3…&#xff09; 2.【SUMIF】单条件求和 SUMIF &#xff08;条件区域&#xff0c;条件&#xff0c;求和区域&#xff09; 3.【SUMIFS】(单)多条件求和…

程序员应该如何选择职业赛道?

程序员选择职业赛道是一个涉及个人兴趣、技能匹配、市场需求和长远发展规划的综合决策过程。以下是一些关键步骤和考虑因素&#xff1a; 自我评估&#xff1a; 技能与专长&#xff1a;分析自己在编程语言、算法、数据结构等方面的现有技能&#xff0c;并思考这些技能更适合前端…

适用于系统版本:CentOS 6/7/8的基线安全检测脚本

#!/bin/bash #适用于系统版本&#xff1a;CentOS 6/7/8 echo "----------------检测是否符合密码复杂度要求----------------" #把minlen&#xff08;密码最小长度&#xff09;设置为8-32位&#xff0c;把minclass&#xff08;至少包含小写字母、大写字母、数字、特殊…

51单片机—DS18B20温度传感器

目录 一.元件介绍及原理 二&#xff0c;应用&#xff1a;DS18B20读取温度 一.元件介绍及原理 1.元件 2.内部介绍 本次元件使用的是单总线 以下为单总线的介绍 时序结构 操作流程 本次需要使用的是SKIP ROM 跳过&#xff0c; CONVERT T温度变化&#xff0c;READ SCRATCHPAD…

AI美图设计室试用,可以生成PPT,以及模特试衣

文章目录 美图设计室试用 美图设计室试用 美图设计室是美图秀秀的公司推出的AI图像处理工具&#xff0c;其功能涵盖图片编辑、抠图、海报设计、文生图等常用的AI功能。尽管很多功能需要开通会员使用&#xff0c;但一些免费功能的表现也还不错&#xff0c;值得一用。 美图设计…

Spring Boot(六十九):利用Alibaba Druid对数据库密码进行加密

1 Alibaba Druid简介 之前介绍过Alibaba Druid的,章节如下,这里就不介绍了: Spring Boot(六十六):集成Alibaba Druid 连接池 这章使用Alibaba Druid进行数据库密码加密,在上面的代码上进行修改,这章只介绍密码加密的步骤。 目前越来越严的安全等级要求,我们在做产品…

JS原型和原型链的理解

原型链图&#xff0c;图中Parent是构造函数&#xff0c;p1是通过Parent实例化出来的一个对象 前置知识 js中对象和函数的关系&#xff0c;函数其实是对象的一种 函数、构造函数的区别&#xff0c;任何函数都可以作为构造函数&#xff0c;但是并不能将任意函数叫做构造函数&…