问题在于您的if __name__ == "__main__"
块位于类定义中。这将导致错误,因为if
在将类绑定到名称之前,中的代码将作为所创建类的一部分运行。
class Foo(object):
foo = Foo() # raises NameError because the name Foo isn't bound yet
如果以这种方式格式化代码(即if
在顶层使用缩进格式),则它应该可以正常工作:
class MyClass:
def convert(self, fl):
xpD = {}
# process some stuff
return xpD
if __name__ == "__main__":
source = sys.argv[1]
td = MyClass()
needed_stuff = td.convert(source)
print(needed_stuff)