【发布时间】:2012-05-07 13:33:58
【问题描述】:
在一个名为“数据”的文件中,我有一些元组:
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() 不是最好的使用方法,但到目前为止,我发现这一切都有效。因此,如果有人能够就如何提高我的理解给我一些想法,我将不胜感激。
亲切的问候
嗅觉。
【问题讨论】:
标签: python string tuples python-2.7