显然我在做一些愚蠢的事情。但是什么?
我得到:
File "<path>", line 71, in args
filename = filename
NameError: name 'filename' is not defined
...在下面的倒数第二行(“文件名 = 文件名”):
def parseLog(filename, explain=False, omitminor=False, omitexpected=False,
omitgdocs=False, args=None):
print(filename)
if not args:
class args:
filename = filename
explain = explain
然而上面的第二行(“打印(文件名)”)工作正常。那么,为什么会出错?
如果您想知道为什么我首先要这样做,那是因为函数 parseLog() 也可以通过命令行调用,如下所示:
def parseLogCLI():
''' parse command line for arguments '''
parser = argparse.ArgumentParser()
parser.add_argument('filename')
parser.add_argument('-explain', action="store_true", help='Explain what program has done')
parser.add_argument('-omitminor', action="store_true", help='Omit minor errors ' + repr(minor_errors))
parser.add_argument('-omitexpected', action="store_true", help='Omit machines expected to be often offline')
parser.add_argument('-omitgdocs', action="store_true", help='Omit errors on Google Docs native files (not copyable) ' + repr(gdocs))
args = parser.parse_args()
parseLog(arg.filename, args=args)
...所以我试图构建一个“arg”类(就像 argparse 一样)来传递给我的函数。如果有更好的方法来做到这一点,我很感兴趣。
噜噜哒
莫回无
相关分类