好的,所以我创建了一个模块并将其导入到我的主程序中。我想我还在尝试理解课程,而且我不确定如何将我的数据输入课堂。这是在Python 3中。这是模块:
class Movie:
def __init__(self, Title = '', Ratings = []):
self.Movie = Title
self.Ratings = Ratings
self.TotalRatings = 0
self.minusFive = 0
self.minusThree = 0
self.one = 0
self.three = 0
self.five = 0
self.ValidRatings = [-5,-3,1,3,5]
def __str__(self):
return '{0} has {1} total ratings with an average rating of {3}.'.format(self.title, self.totalRatings, self.AvgRating)
def __repr__(self):
return self.__str__()
def AddRating(self, rating):
for num in self.Ratings:
if num in self.ValidRatings:
self.totalRatings += 1
else:
continue
def AvgRating(self):
return sum (self.totalRatings)/len(self.totalRatings)
以下是我主程序的开头:
import Movie
def ReadFile(FileName):
F = open(FileName)
return F.readlines()
File = ReadFile('Ratings.txt')
File2 = open('Prog5Titles.txt').read() #open movie titles file
movie1 = Movie("The Avengers", [5,5,5]) #this is just a sample to help me understand
当我运行此操作时,我收到错误消息:' module'对象不可调用。任何人都可以帮我理解如何正确输入我的数据吗?
答案 0 :(得分:3)
问题是你有一个文件Movie.py,其中包含一个名为,巧合,电影的类。如果只是import Movie
,那么python名称Movie引用文件Movie.py 的内容,并引用隐藏在那里的类,你需要写:
movie1 = Movie.Movie("The Avengers", [5,5,5])
或者,你可以这样导入:
from Movie import Movie
现在python名称Movie指的是不同的东西 - 名为Movie的文件Movie.py中的“thing”(在本例中是一个类)。
如果您从文件中定义的类中命名包含名称不同的class Movie
的文件,则会更清楚一些。也许movie_stuff.py
或其他什么。考虑到你在项目中有其他类(Actor,Studio),这些类可能会在与类Movie相同的文件中定义。