当前位置: 首页 > 知识库问答 >
问题:

导入和使用一个函数,该函数将argparse作为参数

何承
2023-03-14

我试图导入一个程序,并在其中使用几个函数,但我遇到了一个问题,与argparse有关。

在我想使用的函数中,创建者将其解析器参数传递给函数,如下所示。

args = parser.parse_args()

def write_flash(esp, args):

    if args.compress is None and not args.no_compress:
    args.compress = not args.no_stub

    # verify file sizes fit in flash
    flash_end = flash_size_bytes(args.flash_size)
    for address, argfile in args.addr_filename:
        argfile.seek(0,2)  # seek to end
        if address + argfile.tell() > flash_end:

我想知道如何在我正在编写的另一个程序中使用这个函数。我是否以某种方式创建了一个parser.parse_args()对象,其参数与他相同?我想到的一件事是使用subprocess.popen这样运行它:

p = subprocess.Popen(['python', 'esptool.py', '--port',
'COM3', 'write_flash', '0x00000', 'boot_v1.7.bin', '0xfc000', 'esp_init_data_    default_v08.bin', '0xfb000',
'blank.bin', '0x01000', 'user1.1024.new.2.bin'])

但这似乎不太理想。我真的对如何处理argparse很迷茫,非常感谢您的帮助,谢谢。

共有1个答案

邴星洲
2023-03-14

parse_args()返回一个命名空间对象。你可以自己创建一个。

from argparse import Namespace`
args = Namespace()
args.compress = True
args.no_stub = 3
print(args)

然后通过它。

 类似资料:
  • 函数可以作为其它函数的参数进行传递,然后在其它函数内调用执行,一般称之为回调。下面是一个将函数作为参数的简单例子(function_parameter.go): package main import ( "fmt" ) func main() { callback(1, Add) } func Add(a, b int) { fmt.Printf("The sum

  • 本文向大家介绍在Python中将函数作为另一个函数的参数传入并调用的方法,包括了在Python中将函数作为另一个函数的参数传入并调用的方法的使用技巧和注意事项,需要的朋友参考一下 在Python中,函数本身也是对象,所以可以将函数作为参数传入另一函数并进行调用 在旧版本中,可以使用apply(function, *args, **kwargs)进行调用,但是在新版本中已经移除,以function(

  • 问题内容: 是否可以通过C语言函数API或通过使用其中将回调函数作为参数的参数在Postgres中创建用户定义的函数? 据我所知,没有办法通过C语言API来执行此操作,因为它仅接受sql数据类型,而没有的数据类型。但是也许我想念什么? 问题答案: 我认为您不能,但是由于没有匿名函数,因此应该传递函数名。

  • 问题内容: 如何在不执行“父”函数或不使用函数的情况下将函数作为参数传递?(因为我已经读到它是不安全的。) 我有这个: 它可以工作,但是问题是在调用函数时触发,而不是在函数中使用时触发。 根据我所读的内容,我可以使用来解决它,但这不是最佳实践。如何在JavaScript中将函数作为参数传递? 问题答案: 您只需要删除括号: 然后,这将传递函数而不先执行它。 这是一个例子:

  • 问题内容: 如何使用Python列表(例如)作为函数的参数,例如: 问题答案: 您可以使用splat运算符执行此操作: 这使函数将每个列表项作为单独的参数接收。这里有一个描述:http : //docs.python.org/tutorial/controlflow.html#unpacking- argument-lists

  • 我需要制作两个lambda函数,一个用参数调用另一个,被调用的函数将参数打印出来。我很难让它工作:第一个函数: 请告知我应该在被调用函数中输入什么代码才能接收参数“hello Jenny”?非常感谢。