如何在Python中引用本地模块?

Tim*_*ijk 3 python import module packages

假设我们有一个模块m:

var = None

def get_var():
    return var

def set_var(v):
    var = v
Run Code Online (Sandbox Code Playgroud)

这将无法按预期工作,因为set_var()不会存储v在模块范围内var.它将创建一个局部变量var.

所以我需要一种m从内部引用模块的方法set_var(),它本身就是模块的成员m.我该怎么做?

Jef*_*rth 10

def set_var(v):
    global var
    var = v
Run Code Online (Sandbox Code Playgroud)

global关键字允许您在函数中从内部更改全局变量.


Ben*_*mes 9

正如Jeffrey Aylesworth的回答所示,您实际上并不需要参考本地模块来实现OP的目标.该global关键字可以达到这个目的.

但是为了回答OP标题,如何在Python中引用本地模块?:

import sys

var = None

def set_var(v):
    sys.modules[__name__].var = v

def get_var():
    return var
Run Code Online (Sandbox Code Playgroud)