如何在Python中访问modulelevel名称?

2024-04-23 16:50:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下代码:

import m

def f(m=None):
    if m is None:
        k = m.M() # I want this m to refer to the imported module, not the parameter

我更希望保持参数名和模块名相同。有没有一种方法可以明确地引用模块m?你知道吗


Tags: 模块theto代码importnoneifis
3条回答

如果不介意只在导入模块中更改模块名称,可以执行以下操作:

import m as m_

def f(m=None):
    if m is None:
        k = m_.M()

python中的模块只是另一个对象,因此globals()-内置将正常工作:

import m

def f(m=None):
    if m is None:
        k = globals()['m'].M()

如果您需要与通常的模块名称相同的参数以提高代码可读性,但可以允许为该范围临时重命名模块,则可以执行以下操作:

import m as _m

def f(m=None):
    if m is None:
        k = _m.M()

不理想,但可能是你能得到的最接近的。你知道吗

相关问题 更多 >