标签: args

Clojure:如何将剩余参数“&args”发送到列表中?

有没有任何(合理的)方法可以将此宏编写为函数?

(defmacro assocTop
          [v & args]
          `(push (pop ~v)
                 (assoc (peek ~v) ~@args)))
Run Code Online (Sandbox Code Playgroud)

给定地图向量和一些关联,宏代码将关联应用于顶部/查看的地图。

但是,当尝试将其编写为函数时,我无法弄清楚如何~@args以合法的方式扩展。在普通函数中,有没有办法将args,我相信其形式(:a 3 :bb 44 :cd 90,...)变成:a 3 :bb 44 :cd 90,...,即没有括号?

macros expand function clojure args

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

args在python中映射到kwargs

所以我昨天做了一些事情,发现这种事情是可能的.

In [3]: class Foo():
    def __init__(self, data=False):
        print data
   ...:

In [4]: foo = Foo(True)
True
Run Code Online (Sandbox Code Playgroud)

所以你可以看到一个arg被映射到一个kwarg,我想知道为什么这个工作,以及如何?

感谢那些可以给我一个相关例子的人.

python args kwargs python-2.7

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

Python使用*args填充函数的输入参数

如果我有一个支持变量参数号的函数,即使用*args,我如何从循环/列表理解中填充参数?假设函数需要多个列表作为参数,并且我有一个表/数据帧,并希望将每列用作输入参数,为什么这不起作用?

funName([df[iCol].values for iCol in df.columns])

假设我的数据框有5列,我需要像这样调用函数:

funName(col1, col2, col3, col4, col5)

但我不想为每列手动创建变量,而是动态填充参数列表.谢谢.

python arguments function args kwargs

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

将函数及其参数传递给另一个函数

我有子功能的树类型:

  • 没有任何参数(参数)的,
  • 第二个只有一个参数
  • 第三个具有多个参数(元组)

我试图将该函数及其参数传递给另一个函数,该函数对所有子函数的结果求和并返回总和值。该函数中的参数应该是:每个子函数的名称作为位置参数 (*args),每个子函数的参数作为键值参数 (*kvargs)。

例子

 def no_arg()
 def one_arg(a)
 def multiple_args(a, b, c, e, f)

 # execution of function_results_sum:
 function_results_sum(
     no_arg, one_arg, multiple_args,
     one_arg=23,
     multiple_args=(1, 2, 3, 4, 5))
Run Code Online (Sandbox Code Playgroud)

到目前为止我所做的:

def no_arg():
    return 5

def ident(x):
    return x

def mult(x, y):
    return x * y    

def function_results_sum(*args, **kwargs):
        return no_arg() + ident(kwargs[ident.__name__]) + mult(*kwargs[mult.__name__])   
Run Code Online (Sandbox Code Playgroud)

上面的代码将参数传递给每个子函数,但子函数名称是硬编码的。我想修改当前代码以便能够从 *args 获取函数名称。下面我写了一个伪代码,表达了我想要实现的目标:

def function_results_sum(*args, **kwargs):
    for functionName in args:
        result = sum(funcionName(kwargs))
    return result
Run Code Online (Sandbox Code Playgroud)

我已经花了一整天的时间来解决这个问题,所以请不要写信给我“使用谷歌不会有什么坏处”;)

python function args keyword-argument

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

使用命令行开关启动 Chromium 无效

我在 macOS 10.15.3 上运行 Chromium 85。

我正在尝试使用Chromium 提供的各种命令行开关中的一些,但它们似乎都没有任何效果。例如

./Chromium --ignore-gpu-blacklist
Run Code Online (Sandbox Code Playgroud)

当它启动并进入chrome://flags页面时,该设置尚未启用:

在此处输入图片说明

我已经在多个版本的 Chromium 以及 Windows 上尝试过,结果相同。我似乎无法启用其中任何一个。

我确实在这个页面上注意到它说

请注意,如果您查看 chrome://flags 以查看命令行选项是否处于活动状态,则可能无法准确反映状态。检查 chrome://version 以获取当前实例中使用的完整命令行。

所以也许它正在工作,只是没有办法验证?检查chrome://version页面并不足以判断某个功能是否已成功启用。它只是回显您传递给命令行的内容。

command-line args chromium

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

Singleshot:带参数的SLOT

我有一个奇怪的问题.这是我的代码:

def method1(self, arg1, delay=True):
    """This is a method class"""

    def recall(arg1):
        self.method1(arg1, delay=False)
        return

    if delay:
            print "A: ", arg1, type(arg1)
            QtCore.QTimer.singleShot(1, self, QtCore.SLOT(recall(int)), arg1)
            return

    print "B: ", arg1, type(arg1)
Run Code Online (Sandbox Code Playgroud)

所以我在控制台中得到这个:

A:  0 <type 'int'>
B:  <type 'int'> <type 'type'>
Run Code Online (Sandbox Code Playgroud)

在"B"中你应该得到与"A"相同的东西.谁知道什么是错的?如何获取arg1值而不是其类型?这没有任何意义......

PS:我正在尝试这样的事情:http://lists.trolltech.com/qt-interest/2004-08/thread00659-0.html

python qt pyqt args slots

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

SyntaxError:在参数function中的关键字arg之后的非关键字arg

我有这个功能:

def crypting(self, client, access_token, client_id, client_secret, oauth_scope, redirect_uri):
Run Code Online (Sandbox Code Playgroud)

标题中的错误在此函数中:

FCU.crypting(client = None, access_token = None, client_id, client_secret, oauth_scope, redirect_uri)
Run Code Online (Sandbox Code Playgroud)

为什么?谢谢你的解决方案.

python arguments function args

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

python从对象获取类名

我试图返回一个版本号,并提供一种实现异常的方法.

由于异常可以用于我的任何类,我试图从对象中获取类名.

问题是,我得到一个元组而不是字符串:

def version_control(*args):
    version = 1.0
    print args
    #Exception example:
    print str(args.__class__.__name__)
    if 'User' == args.__class__.__name__:
        version = 12.3

    return version
Run Code Online (Sandbox Code Playgroud)

如何更改str(args.__class__.__name__)以这种方式将类的名称作为字符串返回?

python string classname args

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

通过func获取*args和**kwargs

在下面的代码中,如何在函数f中获得*args和**kwargs而不需要包装函数?

def f(func):
    def wrapper(*args, **kwargs):
        print(args)
        print(kwargs)
        return func(*args,**kwargs)
    return wrapper

@f
def write(text):
    print(text)

# write = a(write)

write('dog')
Run Code Online (Sandbox Code Playgroud)

尝试失败1:

def f(func):
    a=func(*args)
    k=func(**kwargs)
Run Code Online (Sandbox Code Playgroud)

这会导致错误:

NameError: global name 'args' is not defined
Run Code Online (Sandbox Code Playgroud)

尝试失败2:

def f(func(*args,**kwargs)):
    a=func(*args)
    k=func(**kwargs)
Run Code Online (Sandbox Code Playgroud)

python decorator args kwargs python-3.x

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

D在args中获得位置?

我很新看D(就像......昨天,在寻找Kotlin基准测试之后......)并且目前正试图决定它是否是我想要应对的语言.

我试图从命令行传递一些参数,我有点惊讶.假设我通过"-Foo -Bar".我的程序很简单:

import std.stdio;

void main(string [] args) {

    foreach(arg; args) {
        writeln(arg);
    }
}
Run Code Online (Sandbox Code Playgroud)

来自Java,我希望它能打印出来

  • -foo
  • -酒吧

但我的D程序似乎作为第一个参数获得了它的位置?输出是:

  • /首页/(用户名)/ Java_Projects/HelloD/hellod
  • -foo
  • -酒吧

我尝试搜索这个,但是所有Google点击都引用了Java的-D开关...那么,这是预期的行为吗?如果有,有谁知道为什么?

command-line d args

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