精华内容
下载资源
问答
  • python跨模块全局变量引用

    千次阅读 2018-11-26 15:52:34
    python面向对象开发的过程中往往会有###全局变量的问题,对于新入局小白来说确实 是一个不...Python 中 global 关键字可以定义一个变量为全局变量,但是这个仅限于在一个模块(py文件)中调用全局变量: 我们知道...

    在python面向对象开发的过程中往往会有###全局变量的问题,对于新入局小白来说确实 是一个不小的问题,接下来可以给大家提供一种思路。

    尽管某些书籍上总是说避免使用全局变量,但是在实际的需求不断变化中,往往定义一个全局变量是最可靠的方法,但是又必须要避免变量名覆盖。

    Python 中 global 关键字可以定义一个变量为全局变量,但是这个仅限于在一个模块(py文件)中调用全局变量:

    我们知道Python使用变量的时候是可以直接使用的,x=[] ,y=2,z=“123”,而不需要先定义(var x; var y=2;var z=‘222’),这样的话,在函数内部就无法操作外部的变量了,因为它总会认为你是在定义一个新变量并且赋值,不过 global 就可以解决这个问题。
    代码如下:

    x = 6
    def func():
        global x #定义外部的x
        x = 1
    
    func()
    print (x)
    #输出1
    

    这个时候,即使你在另外一个py文件 再次使用 global x 也是无法访问到的,因为在这个py模块中并没有一个叫做x的变量,于是就会报错 未定义。

    那么我们怎么办?

    借鉴global 关键字的思路,既然在一个文件里面可以生效的话,那么我们就专门为全局变量定义一个“全局变量管理模块”就好了
    如下:

    # -*- coding: utf-8 -*-
    
    def _init():#初始化
        global _global_dict
        _global_dict = {}
    
    
    def set_value(key,value):
        """ 定义一个全局变量 """
        _global_dict[key] = value
    
    
    def get_value(key,defValue=None):
      """ 获得一个全局变量,不存在则返回默认值 """
        try:
            return _global_dict[key]
        except KeyError:
            return defValue
    

    相信如果你看懂了就应该知道思路了,利用global的单独文件全局性,从而可以定义在一个文件中的全局变量,然后这个单个文件的全局变量可以保存多个文件的共同全局变量操作的时候,以Key对Value 的方法操作,我相信大家都懂。
    代码如下:

    
        # -*- coding:utf-8 -*-
        
        from YourPage import gol
        
        gol._init()#先必须在主模块初始化(只在Main模块需要一次即可)
        
        
        #定义跨模块全局变量
        gol.set_value('CODE','UTF-8')
        gol.set_value('PORT',80)
        gol.set_value('HOST','127.0.0.1')
    
    

    然后其他的任何文件只需要导入即可使用:

    from YourPage import gol
    
    #不需要再初始化了
    ROOT = gol.get_value('ROOT',80)
    CODE = gol.get_value('CODE')
    

    就这么简单~

    就这样就可以实现跨文件的全局变量使用;

    并且还有一个简单但是强大的全局变量管理器,你可以自己添油加醋,实现一些比如全局变量禁止直接修改,禁止修改某些只可读的全局变量等等。

    	以上内容转载自https://www.cnblogs.com/suwings/p/6358061.html
    
    展开全文
  • Python跨文件全局变量

    万次阅读 2018-04-25 18:17:30
     Python 中 global 关键字可以定义一个变量为全局变量,但是这个仅限于在一个模块(py文件)中调用全局变量:我们知道Python使用变量的时候是可以直接使用的,x=[] ,y=2,z="123",而不需要先定义(var x...

    尽管某些书籍上总是说避免使用全局变量,但是在实际的需求不断变化中,往往定义一个全局变量是最可靠的方法,但是又必须要避免变量名覆盖。

     

    Python 中 global 关键字可以定义一个变量为全局变量,但是这个仅限于在一个模块(py文件)中调用全局变量:

    我们知道Python使用变量的时候是可以直接使用的,x=[] ,y=2,z="123",而不需要先定义(var x; var y=2;var z='222'),这样的话,在函数内部就无法操作外部的变量了,因为它总会认为你是在定义一个新变量并且赋值,不过 global 就可以解决这个问题。

    global 的基础用法 :

    x = 6
    def func():
        global x #定义外部的x
        x = 1
    
    func()
    print (x)
    #输出1

    这个时候,即使你在另外一个py文件 再次使用 global x 也是无法访问到的,因为在这个py模块中并没有一个叫做x的变量,于是就会报错 未定义。

     

     

    那么我们怎么办?

    借鉴global 关键字的思路,既然在一个文件里面可以生效的话,那么我们就专门为全局变量定义一个“全局变量管理模块”就好了

    具体代码:

    # -*- coding: utf-8 -*-
    
    def _init():#初始化
        global _global_dict
        _global_dict = {}
    
    
    def set_value(key,value):
        """ 定义一个全局变量 """
        _global_dict[key] = value
    
    
    def get_value(key,defValue=None):
      """ 获得一个全局变量,不存在则返回默认值 """
        try:
            return _global_dict[key]
        except KeyError:
            return defValue
    

    相信如果你看懂了就应该知道思路了,利用global的单独文件全局性,从而可以定义在一个文件中的全局变量,然后这个单个文件的全局变量可以保存多个文件的共同全局变量

    操作的时候,以Key对Value 的方法操作,我相信大家都懂。

    # -*- coding:utf-8 -*-
    
    from YourPage import gol
    
    gol._init()#先必须在主模块初始化(只在Main模块需要一次即可)
    
    
    #定义跨模块全局变量
    gol.set_value('CODE','UTF-8')
    gol.set_value('PORT',80)
    gol.set_value('HOST','127.0.0.1')

    然后其他的任何文件只需要导入即可使用:

    # -*- coding: utf-8 -*-
    from YourPage import gol
    
    #不需要再初始化了
    ROOT = gol.get_value('ROOT',80)
    CODE = gol.get_value('CODE')

    就这样就可以实现跨文件的全局变量使用;

    并且还有一个简单但是强大的全局变量管理器,你可以自己添油加醋,实现一些比如全局变量禁止直接修改,禁止修改某些只可读的全局变量等等。


    展开全文
  • Python 中global关键字可以定义一个变量为全局变量,但是这个仅限于在一个模块(py文件)中调用全局变量: 我们知道Python使用变量的时候是可以直接使用的,x=[] ,y=2,z="123",而不需要先定义(var x; var y...

    尽管某些书籍上总是说避免使用全局变量,但是在实际的需求不断变化中,往往定义一个全局变量是最可靠的方法,但是又必须要避免变量名覆盖。

     

    Python 中 global 关键字可以定义一个变量为全局变量,但是这个仅限于在一个模块(py文件)中调用全局变量:

    我们知道Python使用变量的时候是可以直接使用的,x=[] ,y=2,z="123",而不需要先定义(var x; var y=2;var z='222'),这样的话,在函数内部就无法操作外部的变量了,因为它总会认为你是在定义一个新变量并且赋值,不过 global 就可以解决这个问题。

     

    global 的基础用法 :

    x = 6
    def func():
        global x #定义外部的x
        x = 1
     
    func()
    print (x)
    #输出1

    这个时候,即使你在另外一个py文件 再次使用 global x 也是无法访问到的,因为在这个py模块中并没有一个叫做x的变量,于是就会报错 未定义。

     

    那么我们怎么办?

    借鉴global 关键字的思路,既然在一个文件里面可以生效的话,那么我们就专门为全局变量定义一个“全局变量管理模块”就好了

    新建一个py文件,文件名是:gol.py,具体代码:

    # -*- coding: utf-8 -*-
     
    def _init():#初始化
        global _global_dict
        _global_dict = {}
     
     
    def set_value(key,value):
        """ 定义一个全局变量 """
        _global_dict[key] = value
     
     
    def get_value(key,defValue=None):
      """ 获得一个全局变量,不存在则返回默认值 """
        try:
            return _global_dict[key]
        except KeyError:

    相信如果你看懂了就应该知道思路了,利用global的单独文件全局性,从而可以定义在一个文件中的全局变量,然后这个单个文件的全局变量可以保存多个文件的共同全局变量

    操作的时候,以Key对Value 的方法操作,我相信大家都懂。

    # -*- coding:utf-8 -*-
     
    import gol
     
    gol._init()#先必须在主模块初始化(只在Main模块需要一次即可)
     
     
    #定义跨模块全局变量
    gol.set_value('uuid',uuid)
    gol.set_value('token',token)

     

    然后其他的任何文件只需要导入即可使用:

    # -*- coding: utf-8 -*-
    import gol
     
    #不需要再初始化了
    ROOT = gol.get_value('uuid')
    CODE = gol.get_value('token')

     

    就这样就可以实现跨文件的全局变量使用;

    并且还有一个简单但是强大的全局变量管理器,你可以自己添油加醋,实现一些比如全局变量禁止直接修改,禁止修改某些只可读的全局变量等等。

     

    转载于:https://www.cnblogs.com/syw20170419/p/10872318.html

    展开全文
  • gol.py def _init():#初始化 ... """ 定义一个全局变量 """ _global_dict[key] = value def get_value(key,defValue=None): """ 获得一个全局变量,不存在则返回默认值 """ try: return _global_dict[key]

    gol.py

    def _init():#初始化
        global _global_dict
        _global_dict = {}
    
    def set_value(key,value):
        """ 定义一个全局变量 """
        _global_dict[key] = value
    
    def get_value(key,defValue=None):
        """ 获得一个全局变量,不存在则返回默认值 """
        try:
            return _global_dict[key]
        except KeyError:
            return defValue
    

    t1.py

    class A():
        def show(self):
            print("I'am a")
    

    t2.py

    import gol
    
    a = gol.get_value('a')
    a.show()
    

    t3.py

    import t1
    import gol
    
    gol._init()
    a = t1.A()
    gol.set_value('a',a)
    import t2
    #t2.a.show()
    

    文件结构
    在这里插入图片描述

    展开全文
  • Python 中 global 关键字可以定义一个变量为全局变量,但是这个仅限于在一个模块(py文件)中调用全局变量: 我们知道Python使用变量的时候是可以直接使用的,x=[] ,y=2,z="123",而不需要先定义(var x; var y=2;...
  • python跨文件使用全局变量

    千次阅读 2020-11-11 08:41:50
    Python 定义了全局变量的特性,使用global 关键字修饰 global key_word 但是他的一大缺陷就是只能本module 中也就是本文件中使用,跳出这个module就不行。 try 1: 使用一个更宏观的思路,全局变量就用全局加载的...
  • Python 定义了全局变量的特性,使用global 关键字修饰 global key_word 但是他的一大缺陷就是只能本module 中也就是本文件中使用,跳出这个module就不行。 try 1: 使用一个更宏观的思路,全局变量就用全局加载的...
  • 主要介绍了Python 3 实现定义跨模块全局变量和使用,本文通过实例代码相结合的形式给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
  • python实现文件全局变量

    千次阅读 2018-02-23 16:10:37
    Python 中 global 关键字可以定义一个变量为全局变量,但是这个仅限于在一个模块(py文件)中调用全局变量。 多个文件之间使用同一个全局变量demo_value: 文件1:globalvar.py class GlobalVar: demo_value = ...
  • python3 定义全局变量的方法有哪些? 使用global关键字可以定义一个变量为全局变量 定义一个“全局变量管理模块” global与全局变量管理模块的使用环境 global的作用就是把局部变量提升为全局变量仅限于当前...
  • Python 中 global 关键字可以定义一个变量为全局变量,但是这个仅限于在一个模块(py文件)中调用全局变量,在另外一个py文件 再次使用 global x 也是无法访问到的,因为在这个py模块中并没有一个叫做x的变量,于是...
  • Python 中 global 关键字可以定义一个变量为全局变量,但是这个仅限于在一个模块(py文件)中调用全局变量: 我们知道Python使用变量的时候是可以直接使用的,x=[] ,y=2,z="123",而不需要先定义(var x; var y=2;...
  • 一、单模块的全局变量 1、在函数外部定义x = 6 2、在函数内部再次定义...二、多线程、跨模块全局变量全局变量定义一个“全局变量管理模块”,下面主要创建了4个文件 # main.py import threading import os impo
  •  Python 中 global 关键字可以定义一个变量为全局变量,但是这个仅限于在一个模块(py文件)中调用全局变量,在另外一个py文件 再次使用 global x 也是无法访问到的,因为在这个py模块中并没有一个叫做x的变量,...
  • 简单案例: 模块1中的函数 def add(): print(a) if __name__=='__main__': a=10 ...此为模块2调用模块1中的函数,但调用失败,错误提示如下: ...总结:跨模块调用函数时,被调用函数内部不能使用全局变...
  • Python 中的跨模块共享变量

    千次阅读 2019-04-26 00:57:49
    Python 中的跨模块共享变量 一、采用general import的方法 这方法也是官方文件中FAQ中给出的方法。 在单个程序中跨模块共享信息的规范方法是创建一个特殊模块(通常称为config或cfg)。 只需在应用程序的所有模块中...

空空如也

空空如也

1 2 3 4
收藏数 62
精华内容 24
关键字:

python跨模块全局变量

python 订阅