我的自定义函数 returns 错误,而不是 Python 中的编译字符串

My custom function returns the wrong thing rather than compiled string in Python

我正在制作名为 indeX 的模块。有一个变量 __version__ 是最新版本。我有根据参数 v 输出更新信息的函数。如果 v'n',我希望这个函数输出最新的更新信息。所以,我有大量 _update_desc1_0 类型的变量(当然,它并不总是 1_0)。我有自定义函数 _versionTransform(v) 可以转换例如float(1.3) 变成 str(1_3)。我想将 '_update_desc' + _versionTransform(__version__) 转换为例如_update_desc1_4,然后return吧。

我试着用 compile()exac() 做了一些无聊的东西,但没有成功。

变换函数

def _versionTransform(v):
    if type(v) == float:
        v = str(v)
        result = v.replace('.', '_')
        return result

版本功能

def getUpdate(v):
    if v == 'new' or v == 'newest' or v == 'New' or v == 'Newest' or v == 'n' or v == 'NEW' or v == \
    'NEWEST' or v == 'N':
        trans1 = _versionTransform(__version__)
        trans2 = '_update_desc' + trans1
        return exec(trans2)

我想让它输出有关最新版本的信息,但它 return 是 '_update_desc1_3'None

哦,我解决了。问题是我输入了 return exec(trans2) 而不是 return eval(trans2)