在__init__中执行代码

时间:2013-09-07 11:40:57

标签: python class init

我正在尝试解压班级的 init 部分中的xz / bx2 / gz文件。我正在使用以下代码:

class myClass(object):
def __init__(self, *args):
    for i in args:
        try:
            f = tarfile.open(i)
            print("Extracting ", i)
            f.extractall()
            f.close()
        except tarfile.ReadError:
            print("File not a tarball, or any of .xz/.bz2/.gz archives.")
            exit()

if __name__ == "__main__":
    <???>

这里唯一的问题是,我不确定在“ main ”之后要调用什么,以便初始化并运行 init 方法。我刚刚开始,我有点不清楚。

如果我要编写一个名为unpack()的函数来进行解组而不是将其置于 init 之下,我知道我可以做类似的事情:

if __name__ == "__main__":
    start = myClass()
    start.unpack()

由于我想在 init 本身进行解包,在这种情况下我该怎么做?

编辑:

很抱歉,如果我不清楚,我正在尝试从命令行运行此脚本:

# python script.py file1.tar.bz2 file2.tar.bz2 file3.tar.bz2

所以* args应该用文件名填充,因此提取它的代码应该运行,至少从我所知道的。

谢谢,

1 个答案:

答案 0 :(得分:1)

你只需要调用myClass():

if __name__ == "__main__":
    start = myClass(sys.argv)