首页 > 其他分享 >locals与global函数

locals与global函数

时间:2024-03-02 17:55:57浏览次数:18  
标签:函数 global globals func print 全局变量 locals

使用localsglobals函数

Python 提供了 localsglobals 两个内置函数,可以用来获取当前作用域所有的变量。

locals函数

locals函数可以获取当前作用域所有的变量。

  • 在全局空间(函数外)调用locals,获取的是调用locals之前所有的全局变量。
  • 在局部空间(函数内)调用locals,获取的是调用locals之前所有的局部变量。
a = 1
b = 2
def func():
    a1 = 1
    b2 = 2
    res = locals()
    c3 = 3
    print(res)  # This will print {'a1': 1, 'b2': 2}
    d4 = 4
c = 3
func()
d = 4

globals函数

globals函数可以获取全局空间的所有全局变量。

  • 在全局空间(函数外)调用globals,获取的是调用globals之前所有的全局变量。
  • 在局部空间(函数内)调用globals,获取的是调用globals之前所有的全局变量。
a = 1
b = 2
def func():
    a1 = 1
    b2 = 2
    res = globals()
    c3 = 3
    print(res)  # This will print all global variables
    d4 = 4
c = 3 
func()
d = 4

使用globals创建全局变量

globals返回的是全局变量的字典,我们可以通过修改这个字典来创建全局变量。

dic = globals()
dic["wangwen"] = "18岁"
print(wangwen)  # This will print '18岁'

我们也可以使用globals来批量创建全局变量:

def func():
    dic = globals()
    for i in range(1, 5):
        dic[ "a%d" % (i) ] = i  # This will create global variables a1, a2, a3, a4

func()
print(a1, a2, a3, a4)  # This will print 1, 2, 3, 4

标签:函数,global,globals,func,print,全局变量,locals
From: https://www.cnblogs.com/wbcde116/p/18048982

相关文章

  • 关于函数形参里使用const型引用
    刷leetcode的时候,在sort函数里自己实现了一个比较算法:sort(points.begin(),points.end(),[](constvector<int>u,constvector<int>v){returnu[0]<v[0]||(u[0]==v[0]&&u[1]<v[1]);});但令人遗憾的是他在某个包含几百个输入的样例中超时了,但只要稍加改动:sort(points.begin(......
  • 将Opencv的namedWindow( )函数创建的窗口插入显示在应用程序窗口客户区
    1、使用Opencv的namedWindow(WND_NAME,nFlag)//WND_NAME为窗口的名称 nFlag填入图模式有4种2、resizeWindow(wnd_name,宽,高)设置图片窗口的高、宽,3、根据窗口名hPicWnd= FindWindow(NULL,wnd_name)取得显示图片窗口的句柄  4、SetParent(hPicWnd ,应用......
  • 函数调用
    题目https://www.luogu.com.cn/problem/P7077这题给我好搞。不过思路精巧。\(Solution\)首先我们考虑一个比较简单的问题。称函数1是加法,函数2是乘法,函数3是调用。首先,要转换思路。原先暴力模拟,考虑函数顺序,\(O(Qn)\),必炸。我们考虑统计每个函数对答案的贡献。这样是\(O(n......
  • 函数闭包
    11.闭包函数在Python中,如果一个嵌套函数引用了其外层函数的局部变量,并且外层函数将这个内层函数返回,那么这个内层函数就被称为闭包函数,这个过程被称为闭包。闭包函数的判定条件:内函数使用了外函数的局部变量。外函数返回内函数。基本语法形式defzhaoshenyang_family():......
  • 函数补充
    函数的嵌套在Python中,函数可以互相嵌套,即在一个函数内部定义另一个函数。包裹在外层的叫做外函数,内层的就是内函数。defouter():definner():print("我是inner函数")outer()注意:内部函数不能直接在函数外部调用。调用外部函数后,内部函数也不能在函数外......
  • C++ 拷贝构造函数(初学有点难理解)
    拷贝构造函数是一种特殊的构造函数,它在创建对象时,是使用同一类中之前创建的对象来初始化新创建的对象。拷贝构造函数通常用于:通过使用另一个同类型的对象来初始化新创建的对象。复制对象把它作为参数传递给函数。复制对象,并从函数返回这个对象。如果在类中没有定义拷......
  • C++填坑系列——EffectiveModernC++之特殊成员函数
    Chapter移步现代c++之特殊成员函数Item17:Understandspecialmemberfunctiongeneration总结:有必要了解各个函数什么时候自动生成;自动生成的函数有可能产生预期外的行为;特殊成员函数(编译器自动生成):默认构造函数,析构函数,拷贝构造函数,拷贝赋值运算符,移动构造函数,移动赋......
  • C++ 类构造函数 & 析构函数
    带参数的构造函数默认的构造函数没有任何参数,但如果需要,构造函数也可以带有参数。这样在创建对象时就会给对象赋初始值,如下面的例子所示:1#include<iostream>2usingnamespacestd;34classLine5{6public:7voidsetLength(doublelen);8......
  • C语言递归调用子函数
    示例代码1:10进制转16进制查看代码 #include<stdio.h>voiddec2hex(intn){ if(n>15) dec2hex(n/16); if(n%16<10) printf("%c",n%16+'0'); else printf("%c",n%16+55); //printf("%c",n%16<10?n%16+'......
  • 函数相关
    对不起,我看到你的原始内容非常详尽,我试图对它进行概括。如果你希望我更全面地转换为Markdown格式,我可以做到。下面是更详细的版本:Python中的函数在Python中,函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。函数能提高应用的模块性,和代码的重复利用率。1.函数的......