标签: args

使用*args变量传递函数中的多个变量

我是python的新手.请看这个脚本:

def myfunc(*args):  
    print len(args)
    if args == 3:
        for arg in args:
            print arg
    else:
        print "exit"
a, b, c = 1, 2, 3
myfunc(a, b, c)
Run Code Online (Sandbox Code Playgroud)

如您所见,传递给function的参数数量为3.现在条件args==3Trueelse部分被执行.另一方面,如果if条件为假,则执行该部分代码并else跳过.

你能解释为什么if声明在错误条件下执行吗?

python function args

1
推荐指数
1
解决办法
216
查看次数

当传递给 main 的参数太多/太少时抛出异常

我正在编写一个骰子滚动程序,它有两个参数传递给主程序,骰子有多少面以及你想扔的次数。如果传递的参数少于或多于两个,我想抛出异常。我该怎么做呢?

我找到了这个。但我不确定如何使用它?当然,我必须以某种方式指定在抛出异常之前预期的参数数量?

java program-entry-point arguments exception args

1
推荐指数
1
解决办法
1万
查看次数

使用 *args 解包返回函数参数

寻找有关如何使用 *args 正确解压缩其他函数中的返回参数的指导?这是代码;

 #!/usr/bin/python

def func1():

    test1 = 'hello'
    test2 = 'hey'

    return test1, test2


def func2(*args):

    print args[0]
    print args[1]

func2(func1)
Run Code Online (Sandbox Code Playgroud)

我收到的错误信息;

    <function func1 at 0x7fde3229a938>
Traceback (most recent call last):
  File "args_test.py", line 19, in <module>
    func2(func1)
  File "args_test.py", line 17, in func2
    print args[1]
IndexError: tuple index out of range
Run Code Online (Sandbox Code Playgroud)

我已经尝试了一些事情,args()但没有成功。尝试打开包装时我做错了什么?

python function args

1
推荐指数
1
解决办法
173
查看次数

Python Argparse:使用空标志

我正在尝试编写一个 python 脚本,使用argparse它将一个值设置为Trueif-d已设置。

这是我正在尝试的:

parser.add_argument("-d", "--dynamic", required=False)

dynamic = False
if args.dynamic is not None:
  dynamic = True
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

用法:psd.py [-h] -f FILE [-d DYNAMIC] psd.py:错误:参数 -d/--dynamic:需要一个参数

如何将标志设置为期望 0 个参数?

python command-line args

1
推荐指数
1
解决办法
1759
查看次数

Java:带参数的可运行 HashMap

我需要制作一个包含一些参数的可运行 HashMap。

(我正在编写一个游戏,我想要:“当玩家输入特定命令时,它会运行一个带有 args 的特定 void,缓存在我的 HashMap 中。”)

代码将(可能)比我更明确:

1=>制作命令列表的映射,每个键都应该运行:

-"myVoidWithArgs(arg1, arg2)"

-"myOtherVoidWithArgs(arg1, arg2)"

-等等。(arg1 & arg2 应该是字符串)

HashMap<String, Runnable> cmdList = new HashMap<>();
cmdList.put("teleport", () -> myVoidWithArgs(arg1, arg2));
cmdList.put("kill", () -> myOtherVoidWithArgs(arg1, arg2));
Run Code Online (Sandbox Code Playgroud)

2=>稍后,在另一个空白处,获取如下命令:

cmdList.get("teleport").run("Player", "coords");
cmdList.get("kill").run("Player", "Message");
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点 ?还有另一种方法吗?

谢谢

java hashmap args runnable

1
推荐指数
1
解决办法
1991
查看次数

如何在函数签名中使用 *args 和 **kwargs 返回默认值

我正在尝试在 Python 3 (Python 3.7.0) 中使用argskwargs解决问题,但我的理解遇到了一些问题。

这是我有一个简单的功能:

def add_args(y=10, *args, **kwargs):
    return y, args, kwargs
Run Code Online (Sandbox Code Playgroud)

并测试它以查看返回的内容:

    print(add_args(1, 5, 10, 20, 50))
    print(add_args())
    >>
    (1, (5, 10, 20, 50), {}) # What happened to my default y=10?
    (10, (), {})
Run Code Online (Sandbox Code Playgroud)

我不明白的是,y=10第一个打印语句中发生了什么?我可以看到它被1in覆盖,args但我不确定为什么。

我怎样才能重写这个函数,这样默认值就不会被覆盖,或者我是否遗漏了参数从函数签名传递到 return 语句的方式?

我试着在这里这里寻找,但没有找到我正在寻找的答案。因为我认为将默认值放在args和之前kwargs会防止覆盖。

python function args keyword-argument python-3.x

1
推荐指数
1
解决办法
2101
查看次数

每个字符串参数的长度

最近我开始对stdarg.h函数有了一些了解,因为我想要一些类似于printf但不是写入控制台的东西,我想将它作为字符串返回。

到目前为止,这是我想出的:

char *write(const char *format, ...)
{
    // init
    va_list arg;
    char *string;

    va_start (arg, format);
    vsprintf (string, format, arg);

    // done
    va_end (arg);
    return string;
}
Run Code Online (Sandbox Code Playgroud)

现在的问题是,它string没有保留内存,这就是我需要帮助解决此功能的地方,因为我还没有找到任何解决方案。

提前致谢

c arguments args

1
推荐指数
1
解决办法
128
查看次数

Kubernetes 容器参数行为不正确

我想使用 Kubernetes 和postman/newmanDocker 映像来执行我的 API 测试。

在本地,我可以使用以下命令执行图像

docker run postman/newman run <url-to-collection> --env-var baseUrl=<本地主机名>

我将映像包含在 Kubernetes 清单文件中

spec:
  containers:
    - name: newman
      image: postman/newman:latest
      args:
        - run
        - '<url-to-collection>'
        - --env-var baseUrl=<kubernetes-hostname>
Run Code Online (Sandbox Code Playgroud)

当我应用清单并查看容器的日志时,出现以下错误:

error: unknown option '--global-var baseUrl=<kubernetes-hostname>'

我用引号尝试了很多东西,并使用该command部分而不是该args部分,但总是得到相同的结果。我认为 Kubernetes 以某种方式构建命令,而newman可执行文件无法理解它。但是我找不到任何相关信息。

(我还在Newman 的 GitHub 存储库中创建了一个问题)

有人可以向我解释这个问题从何而来以及我如何解决这个问题吗?

不管怎么说,多谢拉!

args docker postman kubernetes newman

1
推荐指数
1
解决办法
1125
查看次数

PowerShell:args 和命名参数

我有一个从 Windows 快捷方式调用的 PS 脚本。我在上面放了几个文件或目录,它工作得很好。我想添加一些命名参数(我们称它们为:-Param1 和 -Param2),可选的,当然只能从 PowerShell 提示符中使用。

param (
    [switch]$CreateShortcut
)
Run Code Online (Sandbox Code Playgroud)

开关参数起作用。

但是,如果我添加一个字符串参数:

param (
    [switch]$CreateShortcut,
    [string]$Param1
)
Run Code Online (Sandbox Code Playgroud)

当然,当我通过 Windows 快捷方式调用脚本时,它不再起作用: $Param1 接收第一个文件。

有解决办法吗?

谢谢

powershell parameter-passing args

1
推荐指数
1
解决办法
1238
查看次数

java中的字符串args []是作为varargs实现的吗?

怎样public static void main(String args[])String args[]实现?它被实现为varargs

我问这个是因为args.length只提供了传递的参数数量,这意味着它没有在任何地方定义String args[] = new String[30].这个数组是如何实现的?

java program-entry-point args variadic-functions

0
推荐指数
1
解决办法
1968
查看次数