「データ」と呼ばれる 1 つのファイルには、いくつかのタプルがあります。
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)
ただし、「データ」ファイルには多くのデータが含まれているため、必要なときに最初のケースのように呼び出すことができるのに、「from data import *」を使用して各タプルでメモリの読み込みを無駄にしているのではないかと心配していましたが、明らかに重要な何かが欠けています。
また、 eval() を使用するのが最善ではないことも確認しましたが、これまでのところ、機能することがわかっているのはそれだけです。ですから、私の理解を改善する方法について誰かが私にいくつかのアイデアを与えることができれば、私は非常に感謝しています.
敬具
スニッフィー。