当前位置: 首页 > news >正文

python内置函数 G

python内置函数 G

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

G

名称描述
getattr从对象中获取属性值。
globals返回当前全局符号表的字典。
getattr(object, name)

getattr(object, name)

getattr(object, name, default)

getattr() 是 Python 中的一个内置函数,它用于从对象中获取属性值。这个函数接受三个参数:对象、属性名(作为字符串)以及一个可选的默认值。

  • object:你想要获取其属性的对象。
  • name:你想要获取的属性的名称,作为字符串传递。
  • default(可选):如果指定的属性不存在,则返回的值。如果未提供此参数且属性不存在,则 getattr() 会引发 AttributeError

object 中指定名称的属性的值。 name 必须是字符串。 如果该字符串是对象的某一属性的名称,则结果将为该属性的值。 例如,getattr(x, 'foobar') 等同于 x.foobar。 如果指定名称的属性不存在,则如果提供了 default 则返回该值,否则将引发 AttributeErrorname 不必是一个 Python 标识符 (参见 setattr())。

备注:由于 私有名称混合 发生在编译时,因此必须手动混合私有属性(以两个下划线打头的属性)名称以使用 getattr() 来提取它。

class MyClass:def __init__(self):self.my_attribute = "Hello, world!"# 创建一个 MyClass 的实例
obj = MyClass()# 使用 getattr() 获取 my_attribute 的值  
value = getattr(obj, 'my_attribute')
print(value)  # 输出: Hello, world!# 尝试获取一个不存在的属性
# value = getattr(obj, 'non_existent_attribute')  # 这会引发 AttributeError# 尝试获取一个不存在的属性,并提供默认值
value = getattr(obj, 'non_existent_attribute', 'Default Value')
print(value)  # 输出: Default Value

getattr() 在许多场景下都非常有用,尤其是当你需要动态地访问对象的属性时。例如,你可能从配置文件、数据库或用户输入中读取属性名,并使用 getattr() 来获取相应的属性值。此外,getattr() 在实现一些高级功能,如动态属性访问、插件系统或对象序列化时也非常有用。

globals()

返回实现当前模块命名空间的字典。对于函数内的代码,这是在定义函数时设置的,无论函数在哪里被调用都保持不变。

使用场景:

  1. 查看全局变量:你可以使用 globals() 来查看当前模块中定义的所有全局变量和它们的值。
  2. 修改全局变量:通过修改 globals() 返回的字典,你可以改变全局变量的值。但通常不推荐这样做,因为它可能导致代码难以理解和维护。
  3. 动态创建全局变量:虽然不常见,但你可以使用 globals() 来动态地创建全局变量。
# 定义一个全局变量  
global_var = "Hello, world!"# 使用 globals() 查看全局变量  
print(globals())  # 输出:{... 'global_var': 'Hello, world!', ...}  # 修改全局变量的值  
globals()['global_var'] = "Hello, Python!"
print(global_var)  # 输出:Hello, Python!  # 动态创建全局变量  
globals()['new_global_var'] = 42
print(new_global_var)  # 输出:42

使用 globals() 修改全局变量或动态创建全局变量应该谨慎进行,因为这可能会使代码难以理解和维护。

globals() 返回的字典不应该被直接修改(比如添加或删除键),因为这可能会导致 Python 解释器出错或产生不可预测的行为。

在函数内部,globals() 返回的是模块级别的全局变量,而不是函数内部的局部变量。在函数内部查看局部变量,可以使用 locals() 函数。

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

相关文章:

python内置函数 G

python内置函数 G Python 解释器内置了很多函数和类型,任何时候都能使用。 G 名称描述getattr从对象中获取属性值。globals返回当前全局符号表的字典。 getattr(object, name) getattr(object, name) getattr(object, name, default) getattr() 是 Python 中…...

深入了解 Spring boot的事务管理机制:掌握 Spring 事务的几种传播行为、隔离级别和回滚机制,理解 AOP 在事务管理中的应用

🎉🎉欢迎光临,终于等到你啦🎉🎉 🏅我是苏泽,一位对技术充满热情的探索者和分享者。🚀🚀 🌟持续更新的专栏《Spring 狂野之旅:从入门到入魔》 &a…...

机械产品CE-MD认证测试项目介绍

机械产品CE-MD认证测试项目介绍 一、引言 随着欧洲市场的日益开放和全球化进程的加速,越来越多的机械产品进入欧洲市场。为确保这些产品的安全性和符合性,欧洲联盟(EU)引入了CE认证制度。同时,对于医疗器械类产品&…...

金融知识分享系列之:MACD指标精讲

金融知识分享系列之:MACD指标精讲 一、MACD指标二、指标原理三、MACD指标参考用法四、MACD计算步骤五、MACD分析要素六、根据快线DIF位置判断趋势七、金叉死叉作为多空信号八、快线位置交叉信号九、指标背离判断行情反转十、差离值的正负十一、差离值的变化十二、指…...

王道c语言-100元有几种换法

Description 一张面值100元的人民币换成10元、5元、2元和1元面值的票子。要求换正好40张&#xff0c;且每种票子至少一张。问&#xff1a;有几种换法&#xff1f; #include <stdio.h> int main() {int count 0;int i, j, t, k, ret 0;for (i 1; i < 37; i) {for …...

c++野指针如何处理?

什么是野指针&#xff1f; 野指针指向一个已删除的对象或未申请访问受限内存区域的指针。与空指针不同&#xff0c;野指针无法通过简单地判断是否为NULL避免&#xff0c;而只能通过养成良好的编程习惯来尽力减少&#xff0c;对野指针进行操作很容易造成程序错误。 野指针产生…...

关于大根堆,set重载运算符

题目描述 \,\,\,\,\,\,\,\,\,\,制定合理的日程能够帮助利用好时间进行加训&#xff0c;加训和加训。 \,\,\,\,\,\,\,\,\,\,新学期开始了&#xff0c;应该好好学习了&#xff01;凌晨两点整&#xff0c;加睡失败的你在为新一天的各项重要事件制定闹钟。 \,\,\,\,\,\,\,\,\,\, \,…...

Algae c++

描述 问题陈述 池塘中藻类的发展情况如下。 假设年初i水藻的总重量为xi​克。对于 i≥2000&#xff0c;下列公式成立&#xff1a; xi1​rxi​−D 给你r、D和x2000​。请依次计算 x2001​、...、x2010​ 并打印出来。 输入描述 输入内容由标准输入法提供&#xff0c;格式…...

开发常用的一些工具总结

开发常用的一些工具总结 记录一些常用的开发软件. Android 开发相关 : Android studio 安卓开发者必备的编辑器,也是我用过最好用的编辑器.还可以用来写JNI 和C.Android studio 插件 : GsonFormatLeakCanary 其他 VS Code :轻量级的开发工具,插件非常多,很好用,但是上手难度…...

k8s Yaml语法解析

YAML是一个类似 XML、JSON 的标记性语言。它强调以数据为中心&#xff0c;并不是以标识语言为重点。因而YAML本身的定义比较简单&#xff0c;号称"一种人性化的数据格式语言"。 YAML的语法比较简单&#xff0c;主要有下面几个&#xff1a; 1、大小写敏感 2、使用缩进…...

【晴问算法】提高篇—动态规划专题—最长公共子序列

题目描述 现有两个字符串s1​​​​与s2​&#xff0c;求s1​​​​与s2​​​​的最长公共子序列的长度&#xff08;子序列可以不连续&#xff09;。 输入描述 第一行为字符串s1​​&#xff0c;仅由小写字母组成&#xff0c;长度不超过100&#xff1b; 第一行为字符串s2​​​…...

Greetings

Problem - 1915F - Codeforces 题意 给一些(l,r)找到所有能够包含(l,r)的数目 引入 也就是找逆序对个数 要用到归并排序中的思想&#xff1a; //https://www.luogu.com.cn/problem/P1216 #include<iostream> #include<cstdio> #include<stack> #include…...

JS03-函数

函数 使用函数 // 函数声明function sayHi(){document.write(Hello!<br>)}for(let i 1; i < 6; i){// 函数调用sayHi()}函数封装 function getScore(arr){sum 0for( let i 0; i < arr.length; i){sum arr[i]}document.write(sum)}getScore([99, 66, 100])函数…...

MySQL | CRUD

目录 1. Create 2. Retrieve 2.1. SELECT列 2.1.1. 全列查询 2.1.2. 指定列查询 2.1.3. 查询字段为表达式 2.1.4. 为查询结果指定别名 2.1.5. 结果去重 2.2. WHERE条件 2.2.1. 年龄小于19的同学 2.2.2. id在2~3的同学 2.2.3. id为1和4的同学 2.2.4. 姓张的同学及张…...

【电路笔记】-MOSFET作为开关

MOSFET 作为开关 文章目录 MOSFET 作为开关1、概述2、MOSFET特性曲线2.1 截住区域2.2 饱和区域3、MOSFET作为开关的示例4、功率MOSFET电机控制5、P沟道MOSFET作为开关6、互补MOSFET作为开关电机控制器当 MOSFET 在截止区和饱和区之间工作时,MOSFET 是非常好的电子开关,用于控…...

SpringBoot+Vue项目(Vue3环境搭建 + 基础页面)

文章目录 1.项目基本介绍2.安装Node.js&#xff08;SSM部分安装过&#xff09;3.初始化前端工程1.创建一个文件夹 springboot_vue2.创建vue项目1.在刚才创建的文件夹下打开命令行&#xff0c;使用脚手架搭建项目2.选择手动配置3.选择三个4.选择vue35.选择路由模式6.选择包管理方…...

elementui el-table表格自动循环滚动【超详细图解】

效果如图 1. 当表格内容超出时&#xff0c;自动滚动&#xff0c;滚动到最后一条之后在从头滚动。 2. 鼠标移入表格中&#xff0c;停止滚动&#xff1b;移出后&#xff0c;继续滚动。 直接贴代码 <template><div><div class"app-container"><e…...

关于学习的一点粗浅见解

我们学习的每一个领域&#xff0c;大多都有着宽泛的知识面&#xff0c;那在学习过程中&#xff0c;我们是应该一开始就专钻一个方向(即深度)&#xff0c;还是应该先扩展知识面(即广度)&#xff1f;个人认为&#xff0c;应该先扩展知识面宽度&#xff0c;然后再精研某个方向&…...

[java基础揉碎]Object类详解

目录 equals方法: hashCode: toString: finalize: equals方法: 和equals对比 1.: 既可以判断基本类型&#xff0c;又可以判断引用类型 2.: 如果判断基本类型&#xff0c;判断的是值是否相等。示例: int i10; double d10.0; 3.:如果判断引用类型&#xff0c;判断的是地址是…...

23.1 微服务理论基础

23.1 微服务基础 1. 微服务介绍2. 微服务特点3. 微服务优缺点4. 微服务两大门派5. 微服务拆分6. 微服务扩展6.1 服务扩展6.2 按需扩展7. 微服务重要模块******************************************************************************************************************...

数据结构-基本概念-001

1数据结构基本概念 1.1 &#xff08;1&#xff09;一组用来保存一种或者多种特定关系的数据的集合&#xff08;组织和存储数据&#xff09;&#xff08;2&#xff09;程序的设计&#xff1a;将现实中大量而复杂的问题以特定的数据类型和特定的存储结构存储在内存中&#xff0…...

以题为例浅谈SSRF

什么是ssrf SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。 一般情况下&#xff0c;SSRF攻击的目标是从外网无法访问的内部系统。&#xff08;正是因为它是由服务端发起的&#xff0c;所以它能够请求到与它相连…...

Java网络编程:探索奥秘与实践

欢迎来到我的博客&#xff01;今天我们将一起探索Java网络编程的奥秘。网络编程是计算机科学中的一个重要领域&#xff0c;它使得不同的计算机系统可以相互通信和共享数据。Java的网络编程库提供了一套全面而强大的工具&#xff0c;让我们能够轻松地实现这些功能。我们将通过一…...

Leetcode992-K个不同整数的子数组[两种方法] 关键词 滑窗

文章目录 题目方法一&#xff1a;滑窗右端每次1&#xff0c;左端来回滑动方法二&#xff1a;&#xff08;最多K种的子串数&#xff09; - &#xff08;最多K-1种的子串数&#xff09; 恰好K种 题目 1 < nums.length < 20000 1 < nums[i], k < nums.length 方法一…...

【闲聊】-后端框架发展史

框架&#xff0c;是为了解决系统复杂性&#xff0c;提升开发效率而产生的工具&#xff0c;主要服务于研发人员。 当然&#xff0c;框架还有更深层的作用&#xff0c;框架的沉淀是一种高级的抽象&#xff0c;会将人类的业务逐步抽象为统一标准又灵活可变的结构&#xff0c;为各行…...

界面控件DevExpress ASP.NET Scheduler - 助力快速交付个人信息管理系统(下)

DevExpress ASP. NET Scheduler组件能完全复制Microsoft Outlook Scheduler的样式和功能&#xff0c;具有日、周、月和时间轴视图&#xff0c;并包括内置的打印支持&#xff0c;因此用户可以在尽可能短的时间内交付全功能的个人信息管理系统。在上文中&#xff08;点击这里回顾…...

机器学习-04-分类算法-01决策树

总结 本系列是机器学习课程的系列课程&#xff0c;主要介绍机器学习中分类算法&#xff0c;本篇为分类算法开篇与决策树部分。 参考 决策树——ID3和C4.5&#xff08;理论图解公式推导&#xff09; 策略产品经理必读系列—第七讲ID3、C4.5和CART算法详解 决策树&#xff08;…...

探索大数据时代的决策利器:如何有效应对海量数据?

随着信息技术的快速发展,大数据时代已经到来,海量数据成为了我们生活和工作中不可忽视的一部分。这些数据来自各个方面:社交媒体、传感器、网络交易、移动设备等,每天都在以惊人的速度增长。但是,面对如此庞大的数据量,我们该如何有效地应对呢?本文将探索大数据时代的决…...

Linux 学习笔记(16)

十六、 计划任务 在很多时候为了自动化管理系统&#xff0c;我们都会用到计划任务&#xff0c;比如关机&#xff0c;管理&#xff0c;备份之类的操作&#xff0c;我 们都可以使用计划任务来完成&#xff0c;这样可以是管理员的工作量大大降低&#xff0c;而且可靠度更好。 l…...

【C语言】打印闰年

输⼊⼀个年份year&#xff0c;判断year是否是闰年 闰年判断的规则&#xff1a; 1&#xff0c; 能被4整除并且不能被100整除是闰年 2&#xff0c;能被400整除是闰年 结合起来如下&#xff1a; if ((year % 4 0 && year % 100 ! 0) || (year % 400 0)) 代码如下&…...

山东官方网站栖霞市观里镇少城镇建设规划/seo主要优化

当 Flutter 遇见 Web&#xff0c;会有怎样的秘密&#xff1f; 在线教育团队&#xff08;简称&#xff1a;OED&#xff09;已经将 Flutter 这样技术在业务中落地了&#xff0c;做为 IMWeb 前端团队的我们也要进行一些尝试。本文从前端角度进行 Flutter 开发的概况描述。主要是为…...

网站建设不推广有用吗/商务网站如何推广

第一周学习任务 一、教材学习内容总结 1.简单的Java应用程序 &#xff08;1&#xff09;源文件的编写与保存 区分大小写&#xff0c;标点符号是英文输入&#xff0c;但字符串里面的符号不受汉字字符或英文字符的限制。类的先后顺序随意。源文件至多有一个public类。如果有一个类…...

《动态网站建设》第04章在线测试/百度推广公司哪家比较靠谱

Lambda定义 lambda 表达式总是括在花括号中&#xff0c; 完整语法形式的参数声明放在花括号内&#xff0c;并有可选的类型标注&#xff0c; 函数体跟在一个 -> 符号之后。如果推断出的该 lambda 的返回类型不是 Unit&#xff0c;那么该 lambda 主体中的最后一个&#xff08;…...

郑州市金水区建设局网站/全国病毒感染最新消息

演示程序下载地址: 【北方网通】 【电信网通】 源代码下载地址: 【北方网通】 【电信网通】 【下载说明】 1 点击上面的地址&#xff0c;打开下载页面 2 点击"普通下载"--等待30秒--点击"下载"按钮--保存 点击这里查看原文 Code Project着火了!…...

wordpress contact us/企业网站怎么注册

# 面向对象的三大特征 - 继承 - 封装 - 多态 # 继承 - 子类可以使用父类定义的内容或者行为等 - 继承的实现 - 父类&#xff1a;基类&#xff0c;超类&#xff1a;被继承的类&#xff0c; Base Class, Super Class - 子类&#xff1a;有继承行为的类 - 所有类都必须有…...

网站模板制作教程视频/百度代发排名

master进程为主进程,该进程会创建Manager进程和Reactor线程等工作进/线程Reactor线程实际运行epoll实例,用于接受客户端的链接和发来的请求 Manager进程是管理进程,该进程是为了创建管理所有的worker进程和TaskWorker进程,而TaskWorker则是manager直接生成的子进程。worker进程…...