怎么给现成.py程序加下循环

如何给现成.py程序加上循环?
新手刚接触python

网上找了一个代码想利用起来。


代码的框架大概是这样的


class do-sth:

    balabala...
    ....有个常量1,常量2
    def __init__(abc)
       ....
    def fun1(abc)
       .....

if __name__ == '__main__':
    dobalabala = do-sth()
    dobalabala.fun1()
  

现在我想把这个程序改造一下,将常量1,常量2改造一下
改成变量,变量从我文件中读取(a1,a2)
文件中a1和a2变量是用|分隔的。
类似这种:
abc|def
xyz|rst
zzz|ttt


单独读取并打印出来,我是可以做出来类似下面的

file = open("./data.txt") 
    for line in file.xreadlines():
        str1 = line
        a1 = str1.split('|')[0]
        a2 = str1.split('|')[1]

求助:如何将 原来程序的功能引入到我这个循环里面呢?
我直接将原来的程序放在 上面语句之后,并且将原程序中的常量改成变量名字,a1,b1 ;测试下来,只是做了一次,也就是文件中最后的zzz,ttt套回原程序操作了一次。
前面的2次等于没操作。

如果将文件读取的for循环放最后,又提示a1,b1变量没有定义什么的。

请大侠指导,谢谢……

------解决方案--------------------
修改__init__为:
def __init__(self, abc, a1, a2):
    self.a1 = a1
    self.a2 = a2

a1,a2用到实例中。

在调用时,
if __name__ == '__main__':
    dobalabala = do-sth(a1, a2)
    dobalabala.fun1()

------解决方案--------------------
加到循环中

if __name__ == '__main__':
    file = open("./data.txt") 
    for line in file.xreadlines():
        str1 = line
        a1 = str1.split('
------解决方案--------------------
')[0]
        a2 = str1.split('
------解决方案--------------------
')[1]
        dobalabala = do-sth(a1, a2)
        dobalabala.fun1()


------解决方案--------------------
完整的例子在这里:

#-*- coding: utf-8 -*-

class AObj(object):
    # a1 = 'aaa'
    # a2 = 'bbb'
    def __init__(self, abc, a1, a2):
        self.a1 = a1
        self.a2 = a2
        self.abc = abc
        
    def func1(self):
        f = self.abc
        print f

if __name__ == '__main__':
    f = open('./data.txt', 'r')
    lines = f.xreadlines()
    for line in lines:
        lst = line.split('