Python - 调用嵌套函数的正确方法?
Python - Proper way to call nested functions?
假设您有以下代码
def set_args():
#Set Arguments
parser = argparse.ArgumentParser()
parser.add_argument("-test", help = 'test')
return parser
def run_code():
def fileCommand():
print("the file type is\n")
os.system("file " + filename).read().strip()
def main():
parser = set_args()
args = parser.parse_args()
从 def main():
调用 fileCommand()
函数的最佳方式是什么?
我有以下代码当然不起作用:
def main():
parser = set_args()
args = parser.parse_args()
#If -test,
if args.test:
filename=args.test
fileCommand()
所以如果你要 运行 python test.py -test test.txt
它应该 运行 它上面的文件命令来获取文件类型
我知道如果我继续胡闹,我会以这种或那种方式得到它,但我通常会开始处理复杂的事情,所以以后会更难处理。那么调用嵌套函数的正确方法是什么?
提前致谢!
Python 内部函数(或嵌套函数)有很多用例,但在其中没有一个,从外部通过嵌套函数访问是一种选择。创建一个嵌套函数来访问父函数变量并从父函数外部调用它是违反原则的。
您可以从父函数中调用该函数或使其成为装饰器:
从父级调用嵌套函数将是:
def run_code(filename):
def fileCommand():
print("the file type is\n")
os.system("file " + filename).read().strip()
fileCommand()
如果您详细描述您的用例以及想要运行这样的代码的原因,我可以提供有关如何实现您的代码的更多详细信息。
假设您有以下代码
def set_args():
#Set Arguments
parser = argparse.ArgumentParser()
parser.add_argument("-test", help = 'test')
return parser
def run_code():
def fileCommand():
print("the file type is\n")
os.system("file " + filename).read().strip()
def main():
parser = set_args()
args = parser.parse_args()
从 def main():
调用 fileCommand()
函数的最佳方式是什么?
我有以下代码当然不起作用:
def main():
parser = set_args()
args = parser.parse_args()
#If -test,
if args.test:
filename=args.test
fileCommand()
所以如果你要 运行 python test.py -test test.txt
它应该 运行 它上面的文件命令来获取文件类型
我知道如果我继续胡闹,我会以这种或那种方式得到它,但我通常会开始处理复杂的事情,所以以后会更难处理。那么调用嵌套函数的正确方法是什么?
提前致谢!
Python 内部函数(或嵌套函数)有很多用例,但在其中没有一个,从外部通过嵌套函数访问是一种选择。创建一个嵌套函数来访问父函数变量并从父函数外部调用它是违反原则的。
您可以从父函数中调用该函数或使其成为装饰器:
从父级调用嵌套函数将是:
def run_code(filename):
def fileCommand():
print("the file type is\n")
os.system("file " + filename).read().strip()
fileCommand()
如果您详细描述您的用例以及想要运行这样的代码的原因,我可以提供有关如何实现您的代码的更多详细信息。