Python globals和locals函数_reload函数

Python globals和locals函数_reload函数:

globals( ):

返回所有能够访问到的全局名字

num = 5
sum = 0

def add(num):
    func_sum = 0
    func_sum += num
    return func_sum

print(globals())
‘‘‘
{‘__name__‘: ‘__main__‘, ‘__doc__‘: None, ‘__package__‘: None, ‘__loader__‘: <_frozen_importlib_external.SourceFileLoader object at 0x000001BA38F1DB08>, ‘__spec__‘: None, ‘__annotations__‘: {}, ‘__builtins__‘: <module ‘builtins‘ (built-in)>, ‘__file__‘: ‘D:/见解/Python/Python代码/vacation/备课/globals 和 locals函数.py‘, ‘__cached__‘: None, ‘num‘: 5, ‘sum‘: 0, ‘add‘: <function add at 0x000001BA3915B678>}

‘‘‘

locals( ):

在函数中使用 locals ,返回形参和局部变量

num = 5
sum = 0

def add(num):
    func_sum = 0
    func_sum += num
    print(locals())
    return func_sum

add(num)
# {‘num‘: 5, ‘func_sum‘: 5}

reload(模块名):reload 在 importlib 模块中

重新导入之前导入过的模块

注:当一个模块导入到另一个脚本时,模块顶层部分的代码只会被执行一次

# 重新导入模块
import func
# 导入自定义的模块
from importlib import reload
# reload 函数在 importlib 模块中
reload(func)
# 重新导入 func 模块
from func import get_info
get_info()
# 获取到了 func 模块的信息

使用reload的前提,是reload的 模块,之前已经使用import或者from导入过,否则会失败

import 导入的模块,使用模块名.方法的方式,reload会强制运行模块文件,然后原来导入的模块会被新使用的导入语句覆盖掉

from 导入的模块,本质是一个赋值操作,即在当前文件中(即执行 from 语句的文件)进行 attr = module.attr

  注:reload 函数对 reload 运行之前的from语句没有影响



2020-02-12

原文地址:https://www.cnblogs.com/hany-postq473111315/p/12299945.html

时间: 2024-10-09 10:00:43

Python globals和locals函数_reload函数的相关文章

python globals()和locals(),global和nonlocal,以及闭包

1. 命名空间和作用域 命名空间 1. 内置命名空间: python解释内部运行时的变量函数 2. 全局命名空间: 我们在py文件中直接声明出来的变量, 函数 3. 局部命名空间: 在函数内部声明的变量和函数 作用域: 1. 全局作用域: 内置 + 全局 2. 局部作用域: 局部 globals() 查看全局作用域中的名字 locals() 查看当前作用域中的名字 2. global和nonlocal global: 把全局变量拿到局部来用. nonlocal:把离他最近的一层的变量拿过来, 不

Python标准库:内置函数exec(object[, globals[, locals]])

本函数是执行一段语句或函数.参数object是一个字符串的语句或者一个编译过的语句的对象名称.参数globals是全局命名空间,用来指定执行语句时可以访问的全局命名空间:参数locals是局部命名空间,用来指定执行语句时可以访问的局部作用域的命名空间.要注意本函数不会返回任何值,不管函数或语句有任何的返回值语句,比return或yield语句. 如果参数globals和locals忽略,就会使用调用时所处的命名空间.这两个参数都要求是字典形式来说明命名空间. 在前面已经学习compile.eva

globals() 和 locals() 函数

globals() 和 locals() 函数 根据调用地方的不同,globals() 和 locals() 函数可被用来返回全局和局部命名空间里的名字. 如果在函数内部调用 locals(),返回的是所有能在该函数里访问的命名. 如果在函数内部调用 globals(),返回的是所有在该函数里能访问的全局名字. 两个函数的返回类型都是字典.所以名字们能用 keys() 函数摘取. 原文地址:https://www.cnblogs.com/MaxElephant/p/10168412.html

Python学习【第九篇】函数

函数 函数是什么? 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 在学习函数之前,一直遵循:面向过程编程,即:根据业务逻辑从上而下实现功能,其往往用一段代码来实现指定功能,开发过程中最常见的操作就是复制粘贴,就是将之前实现的代码块复制到现需功能处,如下: 1 while True: 2 if cpu利用率 > 90%: 3 #发送邮件提醒 4 连接邮箱服务器 5 发送邮件 6 关闭连接 7 8 if 硬盘使用空间 > 90%: 9 #发送邮件提醒 10 连接邮箱服务器 1

Python globals() locals() vars() 三个内建函数的区别

首先参考官方文档对这三个函数的介绍: 2. Built-in Functions – Python3.5 1.globals() 返回当前全局符号表, 通常是返回当前模块下的全局符号表, 比如全局内建的函数,以及模块里的全局符号(定义声明的变量,类, 实例等), 在函数或者类方法中, globals()返回的模块符号表 是其所在模块, 而不是调用模块. 2.locals() 更新并以字典形式返回当前局部符号表. 自由变量由函数块的locals() 返回, 而不会由 class 块来返回. 需要注

Python自动化开发学习3-2-匿名函数、内置函数

匿名函数 如果函数值使用一次,并且结构结单(需要一行表达式),就可以使用匿名函数.匿名函数的好处: 程序一次行使用,所以不需要定义函数名,节省内存中变量定义空间 让程序更加简洁 普通函数: def test(x,y):     return x+y print(test(1,2)) 匿名函数: test = lambda x,y:x+y print(test(1,2)) lambda:定义一个匿名函数 冒号(:):分隔符 冒号之前的部分:函数的参数,可以无参数,但是冒号不能省 冒号之后的部分:函

python学习之旅2(函数进阶)

目录 楔子 命名空间和作用域 函数嵌套及作用域链 函数名的本质 闭包 本章小结 楔子 假如有一个函数,实现返回两个数中的较大值: def my_max(x,y): m = x if x>y else y return mbigger = my_max(10,20)print(bigger) 之前是不是我告诉你们要把结果return回来你们就照做了?可是你们有没有想过,我们为什么要把结果返回?如果我们不返回m,直接在程序中打印,行不行? 来看结果: >>> def my_max(x,

python中的关键字---2(函数基础类)

函数基础 定义函数: def 函数名(): 缩进 函数体(代码块) 调用函数: 函数名 + () 小括号 执行顺序: def func(): 1 print('这大佬黑') 3 func()调用 2 函数的返回值: def func(): 1 print('这大佬黑') 3 return '今晚不溅不散' func()调用 2 返回一个参数的时候是它本身,返回多个就是元组形式显示 当函数体执行到return的时候就结束函数 不写return的时候 默认返回None 写了return不写返回值的时

python函数部分----函数初识

0.来源http://www.cnblogs.com/jin-xin/articles/8241942.html 1.return 返回0个返回值,返回一个返回值.返回多个返回值 None.如果一个变量接多个返回值,会变成元组 2.函数参数 位置传参.关键字传参.混合传参.默认参数.动态参数-->(*args,**kwargs)的使用,接收时聚合,使用时打散 3.命名空间和作用域 3.1引言 1 def func1(): 2 m = 1 3 print(m) 4 5 print(m) #这行报的