【问题标题】:how to create only one object in python every time the code runs每次代码运行时如何在python中只创建一个对象
【发布时间】:2016-02-11 16:03:08
【问题描述】:

每次我运行这段代码。类 Tracker 在输入文本文件的每一新行上创建一个新对象。我只想在您第一次运行代码时创建一个对象,并在整个输入文件中继续使用该对象,而不是每次调用我的类时都创建一个新对象。

class Tracker(object):

    def __init__(self,region):
        self.region = region

    def make_tracker(self):
        self.region = re.search(r'CLI Command: \'show card detail\'',line)
        if self.region:
            print line
            self.region = "CPM OR IOM"
            return self.region
        end = re.search(r'(SUN|MON|TUE|WED|THU|FRI|SAT)(.*)(\d)(\d)(\d)(\d) UTC:$',line)
        if end:
            flag = "end"
            return flag

with open ('/home/thamer/SAMPLE.TXT','r') as f:
    for line in f:    
        first = Tracker(line)
        region = first.make_tracker()

        if region =="CPM or IOM":
            print "CPM or IOM"

【问题讨论】:

    标签: python regex function class object


    【解决方案1】:

    您应该将您的 with 语句更改为如下内容:

    with open ('/home/thamer/SAMPLE.TXT','r') as f:
        tracker = Tracker("")
        for line in f:    
            tracker.region = line
            region = tracker.make_tracker()
    
            if region =="CPM or IOM":
                print "CPM or IOM"
    

    这样,您每次都在更改 tracker.region 而不是 tracker

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-01
      • 2014-03-09
      • 1970-01-01
      • 1970-01-01
      • 2021-12-11
      相关资源
      最近更新 更多