在一个名为“数据”的文件中,我有一些元组:
tuple1 = (1, 2, 3)
tuple2 = (4, 5, 6)
在另一个文件中,我导入数据文件并有一个连接字符串的函数,以便能够调用这些元组。
import data
def string(tupleNumber):
return 'tuple' + str(tupleNumber)
如果我尝试打印元组,我会收到一个错误,因为 string(1) 未在数据中定义。
print data.tuple1 # This works
print string(1) # This also works
print data.string(1) # This does not
出现以下结果:
(1, 2, 3)
tuple1
Traceback (most recent call last):
File "C:/Python27/Scripts/tuplecall.py", line 10, in <module>
print data.string(1)
AttributeError: 'module' object has no attribute 'string'
我可以看到为什么它不起作用,但是当我尝试调用数据集时,我想不出如何将 string(1) 更改为看起来像 tuple1。
到目前为止,我解决这个问题的方法是使用以下代码:
from data import *
def string(tupleNumber):
return 'tuple' + str(tupleNumber)
print tuple1
print string(1)
print eval(string(1))
这给出了结果:
(1, 2, 3)
tuple1
(1, 2, 3)
然而,由于我的“数据”文件中有很多数据,我担心我在每个元组中浪费内存加载“来自数据导入*”,当我需要它时,我可以像第一种情况一样调用它,但我是显然遗漏了一些重要的东西。
我也看到 eval() 不是最好用的东西,但到目前为止,我发现它是所有的。因此,如果有人能够就如何提高我的理解给我一些想法,我将不胜感激。
亲切的问候
嗅觉。