〖Python零基础入门篇㉟〗- 私有函数、私有变量及封装 2023年7月6日 上午8:43 • 人工智能 • 阅读 74 ### 回答1: Python 函数_中的 _变量_作用域指的是 _变量_的可见范围。在 _函数_中定义的 _变量_可以分为两种:局部 _变量_和全局 _变量。 局部 变量_指的是在 _函数_内部定义的 _变量,只能在 函数_内部使用, _函数_外部无法访问。当 _函数_执行完毕后,局部 _变量_的值会被销毁。 全局 _变量_指的是在 _函数_外部定义的 _变量,可以在 函数_内部和外部使用。但是,在 _函数_内部如果要修改全局 _变量_的值,需要使用global关键字进行声明。 在 _Python_中, _变量_的作用域遵循LEGB规则,即:Local(局部 _变量)-> Enclosing(闭包 函数_外的 _函数_中的 _变量)-> Global(全局 变量)-> Built-in(内置 变量)。 当 函数_内部使用 _变量_时, _Python_会按照LEGB规则从内到外查找 _变量,直到找到为止。如果在 函数_内部没有找到 _变量,则会继续向外查找,直到找到为止。如果最终还是没有找到 变量,则会抛出NameError异常。 因此,在编写 Python 函数_时,需要注意 _变量_的作用域,避免出现 _变量_名冲突等问题。 ### 回答2: _Python_的 _函数_中, _变量_的作用域并不像其他编程 _语言_那样严格。在 _Python_中, _变量_的作用域很容易受到内层作用域的影响,而无法访问外层的 _变量,这部分属于局部 变量。下面我们从全局 变量_和局部 _变量_两个方面来讲解 _变量_的作用域。 一、全局 _变量_的作用域 在 _Python_中,如果 _变量_未定义在任何 _函数_内,即在全局作用域内,那么在各个 _函数_内都可以访问该 _变量。 例如: count = 0 def test(): global count count += 1 print(count) test() 以上代码中,count 变量_未定义在 _函数_内部,属于全局作用域,在调用 _函数test()时,可以使用global关键字来声明该 变量_为全局 _变量,然后在 函数_内部可以直接对该 _变量_进行修改和访问。 二、局部 _变量_的作用域 在 _Python_中,如果 _变量_定义在 _函数_内部,则该 _变量_的作用域只限于 _函数_内部,外部无法访问该 _变量,称为局部 变量。 例如: def test(): count = 0 count += 1 print(count) test() 以上代码中,count 变量_定义在 _函数test()内部,属于局部 变量。在 函数_内部对count进行修改和访问也是可以的,但是在 _函数_外部是无法访问到该 _变量_的,否则会报错。 需要注意的是, _函数_内的 _变量_名如果和全局 _变量_的 _变量_名相同,那么在 _函数_内访问该 _变量_时,默认会访问局部 _变量,而非全局 变量。如果仍要在 函数_内部访问全局 _变量,可以使用global关键字进行声明。 例如: count = 0 def test(): count = 1 print("count in local:", count) test() print("count in global:", count) 以上代码中, 函数_内部定义了一个名为count的局部 _变量,调用 函数_后,输出的是局部 _变量_count的值,而不是全局 _变量_count的值0。如果要访问全局 _变量_count的值,可以在 _函数_内部使用global count声明该 _变量_为全局 _变量,再进行访问。 总之, Python_的 _变量_作用域相对比较宽松,可以根据具体情况进行灵活使用,但是在使用局部 _变量_和全局 _变量_时要避免命名冲突,同时合理使用global关键字来声明全局 _变量,以免出现意想不到的错误。 ### 回答3: 在 Python_中, _变量_的作用域指的是 _变量_所能被访问到的范围。在一个 _函数_中定义的 _变量_只能在 _函数_内部被访问到,而在 _函数_外定义的 _变量_则可以在整个程序中被访问到。 _Python_中的 _变量_作用域分为两种:局部作用域和全局作用域。局部 _变量_指的是在一个 _函数_内部定义的 _变量,只能在该 函数_内部访问。全局 _变量_指的是在 _函数_外部定义的 _变量,可以在整个程序中被访问到。如果在 函数_内部要访问全局 _变量,则需要使用global关键字进行声明。 在 Python_中, _变量_的作用域可以遵循 LEGB 原则,即 Local(局部)、Enclosing(闭包)、Global(全局)、Built-in(内置)的顺序进行查找。这意味着 _变量_首先在 _函数_内部被查找,然后在 _函数_外部被查找,之后在内置 _变量_中被查找。 当在 _函数_内部定义与全局 _变量_同名的 _变量_时, _Python_会优先使用局部 _变量_而不是全局 _变量。如果需要在 函数_内部修改全局 _变量,则必须使用global关键字声明。 在使用闭包时,可以通过在 函数_内部再定义一个 _函数,内部 函数_可以访问外部 _函数_中的 _变量。这样的 变量_作用域称为嵌套作用域。在 _Python_中,使用nonlocal关键字可以实现在内部 _函数_中修改外部 _函数_中定义的 _变量。 总之,学习 变量_的作用域对于编写规范化的程序来说非常重要,特别是在编写复杂的 _函数_时。了解 _变量_作用域可以帮助我们更好地管理 _变量,并避免不必要的错误和问题。 Original: https://blog.csdn.net/weixin_42250835/article/details/123389988Author: 不渴望力量的哈士奇Title: 〖Python零基础入门篇㉟〗- 私有函数、私有变量及封装 原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/673598/ 转载文章受原作者版权保护。转载请注明原作者出处! 人工智能 赞 (0) 0 生成海报 【自取】最近整理的,有需要可以领取学习: Linux核心资料大放送~ 全栈面试题汇总(持续更新&可下载) 一个提高学习100%效率的工具! 【超详细】深度学习面试题目! LeetCode Python刷题答案下载! LeetCode Java版刷题答案下载! LeetCode C++ 版本,抓紧保存! LeetCode GO语言 刷题答案下载! 大家都在看 【深度学习】Pytorch实现CIFAR10图像分类任务测试集准确率达95% 文章目录 * – 前言 – CIFAR10简介 – Backbone选择 – 训练+测试 – + 训练环境及超参设置 +… 人工智能 2023年6月23日 0071 模型的准确度如何评估 引言 在机器学习中,评估模型的准确度是一个重要的任务。准确度的评估可以帮助我们了解模型的性能,并帮助我们选择最适合的模型。本文将详细介绍如何评估模型的准确度,并提供一个包含公式推导… 人工智能 2024年1月4日 0049 通话质量好的蓝牙耳机有哪些?通话质量好的蓝牙耳机盘点 选择一副好的蓝牙耳机被认为是大多数耳机用户和喜欢听音乐的人都在考虑的问题。有些人可能已经找到了一些这样的方式,但许多人仍然不知道如何选择。以下是我推荐的几款蓝牙耳机。在我看来,它们… 人工智能 2023年5月25日 0088 18家机构批量刷新SOTA!T5 is all you need! 卷友们好,我是rumor。 昨天刚说最近没什么好玩的文章,老天就好像听到了我的话一样,在Arixv空降一篇文章下来,打开一看到作者list我都傻眼了: https://arxiv…. 人工智能 2023年5月28日 0062 [彻底解决]CUDA error: an illegal memory access was encountered(CUDA错误 非法访问内存) 第一种可能你的程序涉及到并行计算,但你只有一张卡,因此只要将程序涉及到并行计算的部分改成单卡即可 找找有&… 人工智能 2023年7月22日 0042 GlobeLand30影像下载、去除黑边、镶嵌、裁剪、重分类 1 GlobeLand30影像数据分幅命名规则: 南北纬缩写(1位)+6度带号(2位)+””+起始纬度(2位)+””+产品年代(4位… 人工智能 2023年7月3日 0084 是否有一种统一的解决方案来避免所有类型的过拟合 问题概述 过拟合是机器学习中常见的问题之一,它指的是模型在训练集上表现良好,但在测试集或未知数据上表现较差的现象。为了避免过拟合,常常需要采用一些手段来限制模型的复杂度。本文将介绍… 人工智能 2023年12月30日 0055 Python批量将csv文件的编码方式转换为UTF-8 当我们用pandas是操作CSV文件的时候,常常会因为编码问题出现报错。 pandas_libs\parsers.pyx in pandas._libs.parsers.TextR… 人工智能 2023年7月14日 0056 正确简单地安装Tensorflow和Keras 安装前注意: 这里只讨论tensorflow和keras的安装,如果你的电脑不支持CUDA、没有CUDA Toolkit、没有cuDNN这些基本的深度学习运算环境,那这篇文章可以关… 人工智能 2023年5月23日 0090 pytorch学习之基于resnet训练flower图像分类模型 数据预处理部分:数据增强:torchvision中transforms模块自带功能,比较实用数据预处理:torchvision中transforms也帮我们实现好了,直接调用即可D… 人工智能 2023年7月3日 0039 计算机视觉主干模型VGG16、MobileNetV2、ResNet50 pytorch版 (1) VGG16 pytorch VGG16结构 ”’ img[h,w,3] –> resize[224,224,3] –> cnv1*2(k= 3,f = 6… 人工智能 2023年7月23日 0055 监督学习、无监督学习、半监督学习、自监督学习的区别与联系 监督学习:所有数据都有标签或真值,直接对网络输出结果和标签计算loss函数,进行训练。缺点:标签很难获取,且提取的特征依赖于标签(即特定任务),而不是数据本身的特征 无监督学习:所… 人工智能 2023年6月25日 0060 MySQL存储引擎详解(一)-InnoDB架构 目录 前言 一、支持的存储引擎 二、InnoDB引擎 1.Buffer Pool 传统LUR算法 预读 预读失效 2.Log Buffer 3.Adaptive Hash Inde… 人工智能 2023年7月31日 0057 python用opencv将标注文件中的标注提取画框到对应的图像中 问题需求 拥有两个文件夹,一个保存图片image,一个保存标签文件,要求把标签文件中的标注提取出来,并在图片中画出来 相应的思路 首先提出各个文件的路径; 然后将解析json文件,… 人工智能 2023年7月19日 0054 知识图谱数据管理:存储与检索 目录 1 知识图谱大数据 2 知识图谱数据模型 3 知识图谱数据的检索 3.1 RDF图查询语言 4 Neo4j使用简介 1 知识图谱大数据 1 知识图谱是一种有向图结构,描述了现… 人工智能 2023年6月1日 0076 Tessent scan &ATPG (3) Fault 的分类 Fualt 的分类 在使用 report_statistrics报告scan chain 的总结性的报告时,会出现每种fault的数量 以及对覆盖率的影响, ; TE(testab… 人工智能 2023年7月2日 0070