标签: arguments

获取传递给函数的参数的列表/元组/字典?

鉴于以下功能:

def foo(a, b, c):
    pass
Run Code Online (Sandbox Code Playgroud)

如何获得传入的参数的list/tuple/dict/etc,而不必自己构建结构

具体来说,我正在寻找Python的JavaScript arguments关键字版本或PHP的func_get_args()方法.

想要的是使用*args或的解决方案**kwargs; 我需要在函数定义中指定参数名称(以确保它们被传入),但在函数中我希望在list-或dict-style结构中使用它们.

python arguments function

62
推荐指数
4
解决办法
3万
查看次数

将函数的所有参数传递给另一个函数

我希望将传递给函数(func1)的所有参数作为参数传递给另一个函数(func2)里面func1 这可以*args, *kwargs在被调用中完成func1并传递给它们func2,但是还有另一种方法吗?

本来

def func1(*args, **kwargs):
    func2(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)

但如果我的func1签名是

def func1(a=1, b=2, c=3):
Run Code Online (Sandbox Code Playgroud)

如何在不使用的情况下将它们全部发送到func2

def func1(a=1, b=2, c=3):
    func2(a, b, c)
Run Code Online (Sandbox Code Playgroud)

有没有像在JavaScript中的方式callee.arguments

python arguments function

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

Angularjs - 将参数传递给指令

我想知道是否有办法将参数传递给指令?

我想要做的是从控制器附加一个指令,如下所示:

$scope.title = "title";
$scope.title2 = "title2";

angular.element(document.getElementById('wrapper')).append('<directive_name></directive_name>');
Run Code Online (Sandbox Code Playgroud)

是否可以同时传递参数,以便我的指令模板的内容可以链接到一个或另一个范围?

这是指令:

app.directive("directive_name", function(){
    return {
        restrict:'E',
        transclude:true,
        template:'<div class="title"><h2>{{title}}</h3></div>',
        replace:true
    };
})
Run Code Online (Sandbox Code Playgroud)

如果我想使用相同的指令但使用$ scope.title2会怎么样?

arguments controller directive angularjs

62
推荐指数
4
解决办法
14万
查看次数

Rust中的默认函数参数

在Rust中是否可以使用默认参数创建函数?

fn add(a: int = 1, b: int = 2) { a + b }
Run Code Online (Sandbox Code Playgroud)

parameters arguments function rust

61
推荐指数
7
解决办法
2万
查看次数

Python解释器错误,x不带参数(给定1个)

我正在写一小段python作为家庭作业,我不会让它运行!我没有那么多的Python经验,但我知道很多Java.我正在尝试实现粒子群优化算法,这就是我所拥有的:

class Particle:    

    def __init__(self,domain,ID):
        self.ID = ID
        self.gbest = None
        self.velocity = []
        self.current = []
        self.pbest = []
        for x in range(len(domain)):
            self.current.append(random.randint(domain[x][0],domain[x][1])) 
            self.velocity.append(random.randint(domain[x][0],domain[x][1])) 
            self.pbestx = self.current          

    def updateVelocity():
    for x in range(0,len(self.velocity)):
        self.velocity[x] = 2*random.random()*(self.pbestx[x]-self.current[x]) + 2 * random.random()*(self.gbest[x]-self.current[x]) 


    def updatePosition():    
        for x in range(0,len(self.current)):
            self.current[x] = self.current[x] + self.velocity[x]    

    def updatePbest():
        if costf(self.current) < costf(self.best):
            self.best = self.current        

    def psoOptimize(domain,costf,noOfParticles=20, noOfRuns=30):
        particles = []
        for i in range(noOfParticles):    
            particle = Particle(domain,i)    
            particles.append(particle)    

        for i in range(noOfRuns): …
Run Code Online (Sandbox Code Playgroud)

python methods arguments object

60
推荐指数
3
解决办法
9万
查看次数

C++预处理器:避免代码重复成员变量列表

我有一个多个类,每个类都有不同的成员变量,这些变量在构造函数中被简单地初始化.这是一个例子:

struct Person
{
    Person(const char *name, int age)
        :
        name(name),
        age(age)
    {
    }
private:
    const char *name;
    int age;
};
Run Code Online (Sandbox Code Playgroud)

每个都有一个相关的print<>()功能.

template <>
void print<Person>(const Person &person)
{
    std::cout << "name=" << name << "\n";
    std::cout << "age=" << age << "\n";
}
Run Code Online (Sandbox Code Playgroud)

由于参数列表在四个位置复制,因此该代码容易出错.如何重写代码以避免重复?我想使用预处理器和/或模板.

例如,我可以使用X-args预处理器技术 - 类似这样的东西吗?

#define ARGUMENTS \
    ARG(const char *, name) \
    ARG(int, age)

struct Person
{
    Person(LIST_TYPE_NAME_COMMA(ARGUMENTS))
       :
       LIST_NAME_INIT(ARGUMENTS)
    {
    }
private:
    LIST_TYPE_NAME_SEMICOLON(ARGUMENTS)
};

template <>
void print<Person>(const Person &person)
{
   LIST_COUT_LINE(ARGUMENTS)
} …
Run Code Online (Sandbox Code Playgroud)

c++ templates arguments c-preprocessor

60
推荐指数
2
解决办法
3万
查看次数

从文件或STDIN中读取

我编写了一个命令行实用程序,它使用getopt来解析命令行中给出的参数.我还希望有一个文件名是一个可选参数,比如它在其他实用程序中,如grep,cut等.所以,我希望它具有以下用法

tool -d character -f integer [filename]
Run Code Online (Sandbox Code Playgroud)

我该如何实施以下内容?

  • 如果给出了文件名,则从文件中读取.
  • 如果没有给出文件名,请从STDIN读取.

python command-line stdin arguments file

59
推荐指数
7
解决办法
6万
查看次数

MATLAB函数中的可选参数

如何在MATLAB中用可选参数声明函数?

例如:function [a] = train(x, y, opt),opt必须是可选参数.

math parameters matlab arguments function

59
推荐指数
4
解决办法
10万
查看次数

可变函数参数默认值的良好用途?

在Python中将一个可变对象设置为函数中参数的默认值是一个常见的错误.以下是David Goodger撰写的优秀文章中的一个例子:

>>> def bad_append(new_item, a_list=[]):
        a_list.append(new_item)
        return a_list
>>> print bad_append('one')
['one']
>>> print bad_append('two')
['one', 'two']
Run Code Online (Sandbox Code Playgroud)

之所以出现这种情况的解释是在这里.

现在我的问题:这个语法有一个很好的用例吗?

我的意思是,如果遇到它的每个人都犯了同样的错误,调试它,理解问题,从而试图避免它,这种语法有什么用?

python arguments mutable default-value

59
推荐指数
5
解决办法
7022
查看次数

为什么箭头函数没有参数数组?

function foo(x) {
   console.log(arguments)
} //foo(1) prints [1]
Run Code Online (Sandbox Code Playgroud)

var bar = x => console.log(arguments) 
Run Code Online (Sandbox Code Playgroud)

以相同方式调用时出现以下错误:

Uncaught ReferenceError: arguments is not defined
Run Code Online (Sandbox Code Playgroud)

javascript lambda arguments anonymous-function ecmascript-6

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