标签: parameter-passing

python空参数

如果没有参数传递给python脚本,如何打印帮助信息?

#!/usr/bin/env python

import sys

for arg in sys.argv:
    if arg == "do":
        do this
    if arg == ""
        print "usage is bla bla bla"
Run Code Online (Sandbox Code Playgroud)

我缺少的是if arg == ""我不知道如何表达的行:(

python arguments parameter-passing

18
推荐指数
4
解决办法
5万
查看次数

在R data.table中,如何将变量参数传递给表达式?

我遇到了一个小问题data.table.非常感谢您的帮助.我该怎么做呢:

getResult <- function(dt, expr, gby) {
  e <- substitute(expr)
  b <- substitute(gby)
  return(dt[,eval(e),by=b])
}

v1 <- "Sepal.Length"
v2 <- "Species"

dt <- data.table(iris)
rDT <- getResult(dt, sum(v1, na.rm=TRUE), v2)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

sum中的错误(v1,na.rm = TRUE):参数的'type'(字符)无效

现在,无论是v1v2从其他程序通过为字符型变量,所以我不能做到这一点v1<- quote(Sepal.Length),这似乎工作.

r parameter-passing data.table

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

传递函数指针

关于如何将指针传递给指针函数,我有点困惑.我有一个函数,它指向一个我理解没有问题的函数(ExecBlock).但是我给了另一个函数原型(ExecBlock2),它接受了解引用指针(我不确定它到底是什么),如果传递函数有任何参数,也会接受参数.如果有人可以解释优先级以及解释引用函数的确切内容.这不仅仅是传递函数本身吗?在这种情况下(void*)做什么?

int ExecBlock (void (*f) (void), int isSet)
{
    return ExecBlock2( HOW TO PASS HERE? , NULL, isSet);
}

int ExecBlock2(void *(*f)(void *), void *arg, int isSet)
{
    ... more code
}
Run Code Online (Sandbox Code Playgroud)

谢谢!

c c++ pointers function parameter-passing

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

(Python - sklearn)如何通过gridsearchcv将参数传递给自定义的ModelTransformer类

下面是我的管道,似乎我不能通过使用ModelTransformer类将参数传递给我的模型,我从链接中获取它(http://zacstewart.com/2014/08/05/pipelines-of- featureunions-of-pipelines.html)

错误信息对我有意义,但我不知道如何解决这个问题.知道如何解决这个问题吗?谢谢.

# define a pipeline
pipeline = Pipeline([
('vect', DictVectorizer(sparse=False)),
('scale', preprocessing.MinMaxScaler()),
('ess', FeatureUnion(n_jobs=-1, 
                     transformer_list=[
     ('rfc', ModelTransformer(RandomForestClassifier(n_jobs=-1, random_state=1,  n_estimators=100))),
     ('svc', ModelTransformer(SVC(random_state=1))),],
                     transformer_weights=None)),
('es', EnsembleClassifier1()),
])

# define the parameters for the pipeline
parameters = {
'ess__rfc__n_estimators': (100, 200),
}

# ModelTransformer class. It takes it from the link
(http://zacstewart.com/2014/08/05/pipelines-of-featureunions-of-pipelines.html)
class ModelTransformer(TransformerMixin):
    def __init__(self, model):
        self.model = model
    def fit(self, *args, **kwargs):
        self.model.fit(*args, **kwargs)
        return self
    def transform(self, X, **transform_params):
        return DataFrame(self.model.predict(X))

grid_search = GridSearchCV(pipeline, parameters, n_jobs=-1, …
Run Code Online (Sandbox Code Playgroud)

machine-learning parameter-passing python-2.7 scikit-learn cross-validation

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

为什么不将Object用于所有方法参数?

public class helloworld {
    public static void main(String[] args) {
        String text = "Hello World";
        l(text);
        int n = 0;
        l("--------------------------");
        l(n);   
    }

    public static void l(Object obj) {
        System.out.println(obj);
    }
}
Run Code Online (Sandbox Code Playgroud)

我用Java编写了这个简单的程序,它起作用了.现在我很困惑,如果所有的数据类型(int,char,double等)来下的Object,那么为什么我们指定我们希望,当我们值传递给接受哪种数据类型?

我的意思是我们总是可以使用Object函数中使用的数据类型l.是否有一个特定的原因,人们不总是使用Object他们的数据类型来传递值?

java variables parameter-passing

18
推荐指数
2
解决办法
1021
查看次数

如何将智能指针传递给函数?

将对象传递给函数时,相同的规则是否适用于智能指针以及包含动态内存的其他对象?

例如,当我传递std::vector<std::string>给函数时,我总是考虑以下选项:

  1. 我将改变矢量对象的状态,但我希望在函数完成后反映这些更改,AKA进行复制.

    void function(std::vector<std::string> vec);
    
    Run Code Online (Sandbox Code Playgroud)
  2. 我要改变矢量对象的状态,我确实希望在函数完成后反映这些更改,AKA做出参考.

    void function(std::vector<std::string> & vec);
    
    Run Code Online (Sandbox Code Playgroud)
  3. 这个对象非常大,所以我最好传递一个引用,但是告诉编译器不要让我改变它.

    void function(std::vector<std::string> const& vec);  
    
    Run Code Online (Sandbox Code Playgroud)

现在这与智能指针的逻辑相同吗?什么时候应该考虑移动语义?关于如何通过智能指针的一些指导是我最想要的.

c++ smart-pointers parameter-passing unique-ptr c++11

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

char*argv []和char**argv之间的差异,为main()的第二个参数

代码1

#include<stdio.h>

int main(int argc, char *argv[])
{
int j;
printf("%d", argv[1][0]);
return 0;
}
Run Code Online (Sandbox Code Playgroud)

代码2

#include<stdio.h>

int main(int argc, char **argv)
{
int j;
printf("%d", argv[1][0]);
return 0;
}
Run Code Online (Sandbox Code Playgroud)

CODE 1和CODE 2都提供相同的输出.但是CODE 1和CODE 2中主要功能的参数2是不同的.在编译时在数据部分上创建指针数组.argv是指针数组.然后我们应该在main函数中声明参数作为指向字符的指针,即**argv.在CODE 1中声明如何正确?

c arrays pointers parameter-passing argv

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

python的splat运算符*和**在哪里有效?

拆包/图示运营商***在横跨Python版本(2.7,3.X <3.5和3.x> = 3.5)其适用性广泛不同.

例如:

                                   |   2.7    |   3.1-3.4  |   3.5   
----------------------------------------------------------------------
function(*args)                         ?            ?          ?    

x, *y, z = [1, 2, 3, 4, 5]              x            ?          ?    

{**x, **y}                              x            x          ?    
Run Code Online (Sandbox Code Playgroud)

我错过了各种版本之间是否还有其他差异?我正在浏览PEP和Readmes,但文档并未详细说明.

python function parameter-passing argument-unpacking iterable-unpacking

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

ISO C是否允许提供给main()的argv []指针的别名?

ISO C要求托管实现调用名为的函数main.如果程序接收到参数,它们将作为char*指针数组接收,这是main定义中的第二个参数int main(int argc, char* argv[]).

ISO C还要求argv数组指向的字符串是可修改的.

argv别名的元素可以相互影响吗?换句话说,可以存在i,j使得

  • 0 >= i && i < argc
  • 0 >= j && j < argc
  • i != j
  • 0 < strlen(argv[i])
  • strlen(argv[i]) <= strlen(argv[j])
  • argv[i] 别名 argv[j]

在计划启动?如果是这样,argv[i][0]也可以通过别名字符串看到写入argv[j].

ISO C标准的相关条款如下,但不允许我最终回答这个名义上的问题.

§5.1.2.2.1程序启动

在程序启动时调用的函数被命名main.该实现声明此函数没有原型.它应定义为返回类型int且没有参数:

int main(void) { /* ... */ }
Run Code Online (Sandbox Code Playgroud)

或者有两个参数(这里称为argcargv,虽然可以使用任何名称,因为它们是声明它们的函数的本地名称):

int main(int argc, char …
Run Code Online (Sandbox Code Playgroud)

c alias parameter-passing language-lawyer c11

17
推荐指数
2
解决办法
523
查看次数

将数组中的所有值作为参数传递给函数

我有一系列值:

['a', 'b', 'c', 'd']
Run Code Online (Sandbox Code Playgroud)

我需要将这些作为参数传递给函数:

window.myFunction('a', 'b', 'c', 'd');
Run Code Online (Sandbox Code Playgroud)

如果我可以将数组/对象传递给函数,这会更容易,但函数是由其他人编写的或者已经存在而且我无法更改它们 - 它们需要作为单独的参数传递,这是我需要解决的问题.

传递的值的数量不一致.它可能是一个,可能是100个.

再次,我不能影响功能.它们就是这样,我总会收到一系列值传递给它们.

javascript arrays function parameter-passing

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