让我们说我有一个这样的课程:
class ContentConfigParser(object):
def __init__(self,txt):
try:
with open (txt,'r') as conf:
conflines = conf.readlines()
self.width = conflines[0].strip()
self.height = conflines[1].strip()
我正在这样使用它:
while 1:
config= ContentConfigParser("settings.txt") #1
#bla bla with config.width
#peh peh with config.height
我在(1)使用的旧类发生了什么? 是好的编码吗?
答案 0 :(得分:0)
您拥有1的不是类,而是对象或实例。一旦没有参考剩余/超出范围,它们将被丢弃(或标记为垃圾收集器拾取)。因此,它们将在每次迭代中删除。问题是您是否不能在循环外部创建实例,然后在其内部继续使用它。
答案 1 :(得分:0)
我认为您可以将文件打开逻辑与另一个函数分开。
class ContentConfigParser(object):
def __init__(self,txt):
self.filename = txt
self.openfile()
def openfile(self):
try:
with open(txt, 'r') as conf:
conflines = conf.readlines()
self.width = conflines[0].strip()
self.height = conflines[1].strip()
except:
pass
config= ContentConfigParser("settings.txt")
如果要重新读取文件,只需再次实例化该对象