我想要输入的代码(python)如下所示:
class RainfallTable:
def _init_ (self, njrainfall.txt):
self.njrainfall.txt = open(njrainfall.txt, 'r')
def close(self):
if self.t:
self.t.close()
self.t = None
我试图让这个类简单地打开一个名为njrainfall.txt的文件,但是当我这样做时会收到以下错误消息:
File "3Homework.py", line 2
def _init_ (self, njrainfall.txt):
^
我做错了什么?
答案 0 :(得分:3)
您的变量名中有.
,这是python的无效语法。删除njrainfall.txt
变量中的内容。一个很好的替代品是njrainfall_file
或类似的东西。其次,init函数用两个下划线写成,如下所示:
def __init__(self, njrainfall_file):
这里有一些代码:
class RainfallTable:
def __init__(self, njrainfall_file):
self.njrainfall_file = open(njrainfall_file, 'r')
def close(self):
if self.t:
self.t.close()
self.t = None
确保将njrainfall_file
作为文件名字符串传递!
答案 1 :(得分:0)
函数/构造函数应该只有变量作为输入
您可以将文本文件名和路径传递给该init函数
最好用绝对路径传递文本文件
class RainfallTable:
def _init_ (self, textfile):
self.t = open(textfile, 'r')
def close(self):
if self.t:
self.t.close()
self.t = None
将其称为RainfallTable('njrainfall.txt')
答案 2 :(得分:0)
看起来您对字符串,参数/变量名称和类对象感到困惑。
您使用的点必须是变量名称(njrainfall.txt
),看起来像是具有实际文件名的字符串或对象属性。
正如其他人已经指出的那样,你不应该在变量/参数名称中使用点。
你应该使用(我添加了一个try..except来处理传递的文件名不存在的情况):
class RainfallTable:
def _init_ (self, sRainFallFilename):
try:
self.rainfallFile = open(sRainFallFilename, 'r')
except:
self.rainfallFile = None
print "file %s does not exist" % sRainFallFilename
def close(self):
if not self.rainfallFile == None :
self.rainfallFile.close()
self.rainfallFile = None
注意我还改变了close()方法以使用与init()
中相同的属性然后你可以把这个类称为:
RainFallTable myRainFallTable( "NJ.txt" )
...
myRainFallTable.close()
答案 3 :(得分:0)
删除此处的续站
self.njrainfall.txt别的什么。
像
self.njrainfall