python变量名解析总结
1 python变量名解析总结
点号和无点号变量名,用不同的处理方式。
(1) 无点号的变量名,比如X,使用的是作用域。
(2) 有点号的变量名,比如obj.X,使用对象的命名空间。
(3) 模块和类对对象的命名空间进行初始化。
1.1 无点号变量名
无点号变量名遵循LEGB作用域规则。
1.1.1 赋值本地变量
X = value
赋值语句,使变量名成为本地变量。
1.1.2 引用变量
引用变量X时根据LEGB作用规则搜索变量X:当前本地作用域搜索,之后在嵌套的函数中搜索,然后在全局作用域搜索,最后在内置作用域搜索。
1.2 点号变量名
点号的变量名是特定对象的属性。
1.2.1 命名空间赋值
obj.X = value
在进行点号运算的对象obj的命名空间内创建或修改属性名X。
1.2.2 引用点号变量
obj.X
类:先在对象内搜索变量名X,然后在可读取的超类上使用继承搜索变量名X。
模块:直接从模块读取X。
1.3 python变量名分类
python变量赋值位置决定了变量的作用域或命名空间,即变量可访问范围。
| NO | 赋值位置 | 分类 | 描述 |
|---|---|---|---|
| 1 | 模块顶层赋值 | 全局变量 | 都可访问 |
| 2 | 函数内部赋值 | 本地变量 | 函数内部可访问 |
| 3 | 方法内部赋值 | 本地变量 | 方法内部可访问 |
| 4 | 类主体内赋值 | 类数据属性 | 类、实例和行为可访问 |
| 5 | 方法self赋值 | 实例属性 | 实例可访问 |
1.3.1 模块内访问变量
# vars.py
# 模块属性
X = 91def f1():print(X)def f2():# 函数本地变量X = 92print(X)class C1(object):# 类属性X = 93def m1(self):# 方法本地变量X = 94# 实例属性self.X = 95if __name__ == '__main__':print(X) # 91f1() # 91f2() # 92print(X) # 91c = C1()print(c.X) # 93c.m1()print(c.X) # 95print(C1.X) # 93try:# 函数外不可访问本地变量print(f2.X)except Exception as e:print('f2.X={}'.format(e))try:# 方法外不可访问本地变量print(C1.m.X)except Exception as e:print('C1.m.X={}'.format(e))''' 运行结果
E:\documents\F盘>python vars.py
91
91
92
91
93
95
93
f2.X='function' object has no attribute 'X'
C1.m.X=type object 'C1' has no attribute 'm'
'''
1.3.2 模块外访问变量
>>> import os
>>> os.chdir(r'E:\documents\F盘')
>>> import vars
>>> X = 96
>>> print(X)
96
>>> print(vars.X)
91
>>> vars.f1()
91
>>> vars.f2()
92
>>> print(vars.C1.X)
93
>>> c = vars.C1()
>>> print(c.X)
93
>>> c.m1()
>>> print(c.X)
95
1.3.3 global和nonlocal变量
python的global语句用于def函数内定义全局变量。在函数外也可以引用此变量。
python中如果要修改嵌套作用域变量的值,就用nonlocal语句。
>>> S = '梯阅线条'
>>> def g1():print(S)>>> def g2():global SS = 'tyxt'>>> g1()
梯阅线条
>>> g2()
>>> print(S)
tyxt>>> def n1():S = 9555def n11():print(S)return n11>>> n1()()
9555
>>> def n2():S = 9555def n21():nonlocal Sprint(S)S = 9666print(S)return n21>>> n2()()
9555
9666
相关文章:
python变量名解析总结
1 python变量名解析总结 点号和无点号变量名,用不同的处理方式。 (1) 无点号的变量名,比如X,使用的是作用域。 (2) 有点号的变量名,比如obj.X,使用对象的命名空间。 …...
端口号大揭秘:网络世界的“门牌号”有多牛?
大家好,今天我们来聊一聊网络中的端口号。如果你以为端口号只是冷冰冰的数字,那你就大错特错了。端口号,这些看似枯燥的数字背后,隐藏着一个个生动的故事。 目录 大家好,今天我们来聊一聊网络中的端口号。如果你以为端…...
vue解除数据双向绑定
let obj JSON.parse(JSON.stringify(data));例如,table列表中,点击编辑时,可对val进行如上操作来解除双向绑定...
组件插槽,生命周期,轮播图组件的封装,自定义指令的封装等详解以及axios的卖座案例
3.组件插槽 3-1组件插槽 注意 插槽内容可以访问到父组件的数据作用域,因为插槽内容本身就是在父组件模版中定义的 插槽内容无法访问子组件的数据.vue模版中的表达式只能访问其定义时所处的作用域,这和JavaScript的词法作用域是一致的,换言之: 父组件模版的表达式只能访问父组…...
小美的树上染色
美团2024届秋招笔试第一场编程真题 先提一个小知识:题目中凡是提到树结构都要使用图的存储方式,只有二叉树例外。 分析:在树结构中,孩子和父节点是相邻节点,而父节点可能有多个孩子节点。在染色的过程中,…...
1.rk3588的yolov5运行:pt_onnx_rknn转换及rknn在rk3588系统python运行
自己有点笨,查资料查了一周才完美的实现了yolov5在rk3588环境下的运行,在这里写具体步骤希望大家少走弯路。具体步骤如下: 一、yolov5的原代码下载及pt文件转换为onnx文件 1.yolov5的原代码下载及环境搭建 在这里一定要下载正确版本的源代码…...
适用于全部安卓手机的 5 大免费 Android 数据恢复
您是否面临这样一种情况,即在Android设备上丢失了一些重要文件,但不知道应该选择哪种Android数据恢复来取回它们? 如果您以前从未备份过Android数据,则很难解决问题。 本文将介绍排名前5位的免费Android数据恢复软件。 您可以获…...
【案例分享】BenchmarkSQL 5.0 压测 openGauss 5.0.0
一、前言 本次BenchmarkSQL 压测openGauss仅作为学习使用压测工具测试tpcc为目的,并不代表数据库性能如本次压测所得数据。实际生产性能压测,还需结合服务器软硬件配置、数据库性能参数调优、BenchmarkSQL 配置文件参数相结合,是一个复杂的过…...
Linux之 4 种休眠模式
目录 1. Linux之 4 种休眠模式 1. Linux之 4 种休眠模式 # echo standby >/sys/power/state //CPU和RAM在运行 # echo mem > /sys/power/state //挂起到内存(待机),关闭硬 盘、外设等设备 # echo disk > /sys/power/state //挂起到硬盘(休眠),关闭硬盘、外设等设备&…...
homeassiant主题
下载主题 https://github.com/maartenpaauw/home-assistant-community-themes.git 使用file editor到homeassiant路径下,新建文件夹themes文件夹,用terminal新建也可以。 使用file editor上传文件 使用Terminal解压 mkdir themes unzip home-assistan…...
《2020年最新面经》—字节跳动Java社招面试题
文章目录 前言:一面:01、Java基础知识答疑,简单概述一下?02、倒排索引了解吗?使用Java语言怎么实现倒排?03、详细讲解一下redis里面的哈希表,常用的Redis哈希表命名有哪些,举例说明其…...
2.3IP详解及配置
2.3IP详解及配置 一、ip地址组成 IP地址由4部分数字组成,每部分数字对应于8位二进制数字,各部分之间用小数点分开 这是点分 2进制 如果换算为10进制我们称为点分10进制. 每个ip地址由两部分组成网络地址(NetID)和主z机地址(HostID).网络地址表示其属于…...
Python程序打包指南:手把手教你一步步完成
最近感兴趣想将开发的项目转成Package,研究了一下相关文章,并且自己跑通了,走了一下弯路,这里记录一下如何打包一个简单的Python项目,展示如何添加必要的文件和结构来创建包,如何构建包,以及如何…...
Linux yum 使用时提示 获取 GPG 密钥失败Couldn‘t open file RPM-GPG-KEY-EPEL-7
资料 错误提示: no crontab for root - using an empty one 888 原因剖析: 第一次使用crontab -e 命令时会让我们选择编辑器,很多人会不小心选择默认的nano(不好用),或则提示no crontab for root - usin…...
OpenGL_Learn13(材质)
1. 材质 cube.vs #version 330 core layout (location 0) in vec3 aPos; layout (location 0 ) in vec3 aNormal;out vec3 FragPos; out vec3 Normal;uniform mat4 model; uniform mat4 view; uniform mat4 projection;void main() {FragPosvec3(model*vec4(aPos,1.0));Norma…...
buildadmin+tp8表格操作(1)----表头上方添加按钮和自定义按钮
buildAdmin 的表头上添加一些按钮,并实现功能 添加按钮 <template><!-- buttons 属性定义了 TableHeader 本身支持的顶部按钮,仅需传递按钮名即可 --><!-- 这里的框架自带的 顶部按钮 分别有 刷新 , 添加, 编辑&…...
MySQL 定时计划任务 事件的使用
目录 查看事件是否开启 开启事件 1)通过设置全局参数修改 2)更改配置文件 MySQL如何创建并执行事件? 例 1 MySQL查看事件状态信息 MySQL修改和删除事件 例 1 例 2 删除事件 例 3 在数据库管理中,经常要周期性的执行某…...
C++构造函数 拷贝构造函数 括号法显示法隐式转换法实现类
一.无参构造 & 有参构造 & 拷贝构造函数 拷贝的是自己所属的类,也就是克隆自己。 所以传参要穿自己的类名。 克隆归克隆,但是不能把本身给改了,所以参数前要加const。class Person { public:int age;public:Person(){cout<<&q…...
FreeRTOS中的内存分配策略
FreeRTOS为内存管理提供了几种不同的策略,分别由heap_1.c至heap_5.c实现。以下是每种策略: heap_1.c: 最简单的策略。只允许一次性的内存分配。不允许内存释放。对于只分配内存但不释放的系统特别有用,如仅在启动时分配任务和队列的系统。内存…...
HP惠普光影精灵7笔记本Victus by HP 16.1英寸游戏本16-d0000原装出厂Windows11.21H2预装OEM系统
下载链接:https://pan.baidu.com/s/1LGNeQR1AF1XBJb5kfZca5w?pwdhwk6 提取码:hwk6 可适用的型号: 16-d0111tx,16-d0112tx,16-d0125tx,16-d0127tx,16-d0128tx,16-d0129tx&#…...
面壁智能开源端侧多模态大模型MiniCPM-V 4.6,性能登顶同尺寸榜首,降低开发门槛
【导语:5月13日,面壁智能联合清华大学与OpenBMB开源社区,发布并开源新一代端侧多模态大模型MiniCPM-V 4.6。该模型以轻量级参数实现性能与效率突破,在评测中超越竞品,还降低了运行内存需求和计算成本,支持多…...
Linux上运行Cursor编辑器:AppImage打包与AI编程环境搭建指南
1. 项目概述:一个为Linux用户定制的代码编辑器如果你是一名长期在Linux环境下工作的开发者,尤其是习惯了使用VS Code这类现代编辑器,但又对某些AI辅助编程工具(比如Cursor)的便捷性念念不忘,那么你很可能已…...
HTML函数工具在NAS设备上能运行吗_轻服务器适配指南【指南】
在NAS上运行HTML函数工具需依场景选择方案:一、用Web服务托管为静态页,由浏览器执行;二、用Docker运行Node.js容器提供API;三、通过SSHjsdom在终端模拟执行;四、前端留NAS,后端逻辑迁至云函数。如果您希望在…...
如何快速解析SWF文件:JPEXS免费Flash反编译器的完整指南
如何快速解析SWF文件:JPEXS免费Flash反编译器的完整指南 【免费下载链接】jpexs-decompiler JPEXS Free Flash Decompiler 项目地址: https://gitcode.com/gh_mirrors/jp/jpexs-decompiler JPEXS Free Flash Decompiler是一款功能强大的开源Flash逆向工程工具…...
终极指南:Shoelace如何利用Shadow DOM实现完美样式隔离
终极指南:Shoelace如何利用Shadow DOM实现完美样式隔离 【免费下载链接】shoelace Shoelace is now Web Awesome. Come see what’s new! 项目地址: https://gitcode.com/gh_mirrors/sh/shoelace Shoelace(现已更名为Web Awesome)作为…...
群晖DSM 7.2.2视频站恢复指南:三步搞定Video Station完整功能
群晖DSM 7.2.2视频站恢复指南:三步搞定Video Station完整功能 【免费下载链接】Video_Station_for_DSM_722 Script to install Video Station in DSM 7.2.2 and DSM 7.3 项目地址: https://gitcode.com/gh_mirrors/vi/Video_Station_for_DSM_722 还在为升级到…...
Markdown基础功能
原文:Markdown基础语法介绍 | Colin Gretzky的博客 本文介绍 Markdown 笔记格式的基础功能,涵盖核心语法和使用要点,适合初学者快速上手。 Markdown 简介 Markdown 是一种轻量级的标记语言,由 John Gruber 于 2004 年设计。它的核…...
AI 驱动多态钓鱼攻击机理与行为防御体系研究
摘要 生成式 AI 技术推动网络钓鱼从规模化群发转向实时动态变异的多态化攻击模式,以每 15–20 秒生成唯一邮件、链接与附件,彻底颠覆基于重复特征与静态规则的传统防御逻辑。Cofense 2025 年威胁数据显示,76% 的恶意 URL 具备唯一性、82% 的恶…...
2026最权威的六大AI写作工具推荐
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 在学术研究链路里,DeepSeek能够为论文撰写给予全流程辅助支持,从梳理…...
Nexus Machine架构:边缘计算中稀疏矩阵处理的革新
1. 项目概述:Nexus Machine架构的创新价值在边缘计算和AI推理领域,稀疏矩阵计算(如SpMSpM、SpMV)和图形处理(如BFS、PageRank)等不规则工作负载正面临严峻的性能瓶颈。传统CGRA(Coarse-Grained …...
