我的自定义函数 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)
我正在制作名为 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)