首页 » 网站推广 » php界说变量global技巧_Python中的global关键字的用法以及若何设置变量

php界说变量global技巧_Python中的global关键字的用法以及若何设置变量

访客 2024-12-09 0

扫一扫用手机浏览

文章目录 [+]

# 当前所处位置cur = 0# 默认往前移动无不def movenext(): print(cur)#调用Main函数if __name__ == '__main__': movenext()

运行后,掌握台输出如下:

0Process finished with exit code 0

那么我刚刚说了,这个函数是我想像往前移动5步,那么这么一想,我就做了如下修正:

php界说变量global技巧_Python中的global关键字的用法以及若何设置变量

# 当前所处位置cur = 0# 默认往前移动无不def movenext(): cur=cur+5 print(cur)#调用Main函数if __name__ == '__main__': movenext()

运行后,掌握台输出却变成了如下:

php界说变量global技巧_Python中的global关键字的用法以及若何设置变量
(图片来自网络侵删)

Traceback (most recent call last):File "criss_try.py", line 18, in <module> movenext()File “criss_try.py", line 14, in movenext cur=cur+5UnboundLocalError: local variable 'cur' referenced before assignment

上面的缺点是由于对付在函数表面定义的global的变量,在函数内部只能完成对其访问,不能对其修正,因此会涌现上述报告,如果你想在函数对一个global的变量进行修正,那么须要显著的声明global变量,作如下修正:

# 当前所处位置cur = 0# 默认往前移动无不def movenext(): #显著的声明global变量 global cur cur=cur+5 print(cur)#调用Main函数if __name__ == '__main__': movenext() print(cur)

运行结果如下:

55Process finished with exit code 0

可以看出,第一个5是在movenext函数中打印出来的,第二个5是在main函数中打印出来的,但是都是打印了cur这个变量。
我们在movenext函数中完成了cur的修正,但是我们在movenext函数中或者函数外打印cur都是一样的结果,解释在函数中修正的cur便是全局的cur这个变量。

从上面的内容中我们可以看到Global是在一个py文件内部约束全局变量的关键字,在同一个项目中我们是如何约束一个项目的全局变量的呢?

借助Global的思路,建立一个全局变量管理的机制,这样就可以供应项目级的全局变量了新建global_manager.py

#!/usr/bin/env python # -- coding: utf-8 -- # @Time : 2020/8/24 2:54 下午 # @Author : CrissChan # @From :https://github.com/crisschan/ # @Site : https://blog.csdn.net/crisschan # @File : global_manager.py # @Intro : 项目级的全局变量管理器,通过global定义全局字典,完成项目的全局变量的定义 # 利用方法在对应的文件中: # import global_manager as glob # glob._init() # 先必须在主模块初始化 # # 定义跨模块全局变量 # glob.set_value('sessionid', sessionid) # 在利用全局变量的项目内的文件前中: # import global_manager as glob # sessionid=glob.get_value('sessionid') # # 这就达到了项目将全局变量的目的 def _init(): ''' 初始化全局变量管理器 :return: ''' global _glo_dict _glo_dict = {} def set_value(key, value): ''' 将全局变量存入全局变量管理器 :param key: 全局变量的名字 :param value: 全局变量的值 :return: ''' _global_dict[key] = value def get_value(key): ''' :param key: 全局变量的名字 :return: ''' try: return _global_dict[key] except KeyError as e: print(e)

标签:

相关文章