首页 > 编程语言 >python作用域

python作用域

时间:2023-06-05 18:37:41浏览次数:39  
标签:name 作用域 sys python 模块 变量

1 变量作用域

变量(所有在内存中的数据)作用域:LEGB

L:Local 本地作用域(局部作用域),函数内部
E:Enclosed 闭包作用于,两个函数之间的,
G:Gobal全局作用域(这个文件)
B:Builtln 内置作用域(全局通用)(pprint(builtins))

内置:在任何地方,都可以直接使用
全局:在本文件的任何地方,可以直接使用

访问顺序:当我们访问某个变量时,会按照L->E->G->B的顺序去

2 变量升级

如何让变量升级

2.1.gloabl关键字和nonlocal关键字

gloabl关键字 让变量升级到全局作用域
nonlocal关键字 闭包作用域

def f1():
    #name="f1"
    global f2

    def f2():
        #nonlocal name
        #name="f2"
        print(name)

f1()
f2()

可以让同名但是不同值的变量,同时存在

怎么创造新的作用域:
B G是不需要创造
L E通过定义函数来创造
判断、循环、类:都不能创造作用域

2.2 模块导入

文件:模块
文件夹:包

解决变量(数据)跨文件访问:模块导入

模块导入

from a import name(name是a.py文件的全局变量)#覆盖本文件的全局作用域
print(name)

import a
print(a.name)

什么样的python文件都可以被导入吗?

  • 文件名符合变量名要求的.py结尾的python文件
  • 文件存在于sys.path路径内
import sys

sys.path.append("D:\lgs\paramter")#包加入到系统路径
for p in sys.path:
    print(p)

什么样的python文件夹可以被导入?

  • 文件名夹符合变量名要求的
  • 文件夹存在sys.path路径内容
  • 文件夹包含了模块(普通模块,特殊模块:__init__.py)

标签:name,作用域,sys,python,模块,变量
From: https://www.cnblogs.com/lgs-tech/p/17458656.html

相关文章

  • # yyds干货盘点 # Python中encoding='utf-8-sig'是什么意思
    大家好,我是皮皮。一、前言前几天在Python白银群【凡人不烦人】问了一个Python编码的问题,这里拿出来给大家分享下。二、实现过程这里大家一起来学习下。在Python中,encoding='utf-8-sig' 是一种编码格式,用于指定字符串的编码方式。具体来说,utf-8-sig 编码格式是 utf-8 编码的一种......
  • python解析
    关于beautifulsoupBeautifulSoup用来从HTML或XML文件中提取数据现在最新的版本是beautifulsoup3已经停止开发,现在最新推荐使用的是beautifulsoup4安装pipinstallbeautifulsoup4beautifulsoup要用起来还需要一个解析器的东西,官网列出了主要的一些解析器除了第一个标......
  • Python 基础(一):入门必备知识
    入门必备知识 1标识符 标识符是编程时使用的名字,用于给变量、函数、语句块等命名,Python中标识符由字母、数字、下划线组成,不能以数字开头,区分大小写。以下划线开头的标识符有特殊含义,单下划线开头的标识符,如:_xxx,表示不能直接访问的类属性,需通过类提供的接口进行访问,......
  • 使用 python-fire 快速构建 CLI
    命令行应用程序是开发人员最好的朋友。想快速完成某事?只需敲击几下键盘,您就已经拥有了想要的东西。Python是许多开发人员在需要快速组合某些东西时选择的第一语言。但是我们拼凑起来的东西在大多数时候并不是一个完整的CLI,您需要管理标志、解析参数、链接子命令等等,这很麻烦,因此......
  • python+uiautomator2+atx,未开启底部导航栏会存在元素不一致
    如果在同一个安卓手机上,一个应用程序开启了底部导航栏而另一个未开启,在UI自动化测试中,这可能会导致元素在两个应用程序之间的定位方式有所不同。因为不同的应用程序可能会使用不同的布局和元素渲染方式。如果在未开启导航栏的应用程序中无法找到元素,则需要确保您的locator与该应......
  • 汽车代码的实现 - 用python、c++写的自动驾驶系统
    汽车代码的实现-自动驾驶系统自动驾驶系统是近年来发展迅速的汽车代码领域之一。这个系统旨在使用传感器和计算机,自动化控制车辆行驶,消除驾驶员的错误和危险。实现自动驾驶系统需要使用一些重要的编程语言和技术,如Python、Matlab、深度学习和机器视觉算法。此外,还需要使用各种......
  • 简析python深浅拷贝
    1.基础知识a=123b=123#内存函数id,返回变量的内存地址id(a)id(b)c="123"d=cid(c)id(d)f=[1,2,3]g=[1,2,3]h=fid(f)id(g)id(h)使用内存分析工具winDbg查看这两个变量的内存分布操作步骤:1.使用系统计算机工具程序员模式复制粘贴id得到16进制内存地址2.打开w......
  • 实验6 turtle绘图与python库应用编程体验
    任务1fromturtleimport*defmove(x,y):penup()goto(x,y)pendown()defdraw(n,size=100):foriinrange(n):fd(size)left(360/n)defmain():pensize(2)pencolor('red')move(-200,0)draw(3)mov......
  • Python学习的个人笔记
    python基础知识目录:Python基础语法:(1)打印出helloworld(2)注释(3)数据类型(4)运算(5)输入(6)输出(7)序列(8)相等比较(9)选择(10)循环(11)字典(dict)(12)集合(set)(不常用)(14)pass,del,exec,eval(15)内建函数Python进阶语法:(1)文件(2)错误和异常(3)模块和包(4)作用域(5)高阶函数(6)装饰器(7)参数(8)面......
  • Python之生成器
    生成器''' 生成器就是迭代器的另一种形式,可以理解为生成器就是一种自定义的迭代器 '''所以什么是生成器? 通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前......