MovieFile
x.pyからy.pyにオブジェクトのセットを渡し、それらを反復処理して、y.pyで各オブジェクトの属性を使用しようとしています。
x.py
mfSet = {}
def pop():
## populate mfSet with MovieFile objects
m = MovieFile(title=t, year=y, dir=d, filename=f)
mfSet.setdefault(str(m), []).append(m)
class MovieFile():
def __init__(self, title, dir, filename, year=0):
self.title = title
self.year = year
self.fulltitle = title if year == 0 else title + ' (' + year + ')'
self.dir = dir
self.filename = filename
def __str__(self):
return repr(self.title + ' (' + self.year + ') at ' + self.dir)
y.py
from x import MovieFile, mfSet, pop # not sure if I need to import MovieFile
pop()
for mf in mfSet:
ft = mf.fulltitle # stacktrace says this attr doesn't exist for str object
title = mf.title # printing shows that this is "<built-in method title of str object at 0x10d84a3f0>"
だから私の主な質問は次のとおりです。
MovieFileオブジェクトがstrオブジェクトとしてコンパイルされるのはなぜですか。またfulltitle
、これらのオブジェクトを使用した後、attrを使用するにはどうすればよいですか。