标签: parameter-passing

在Python中强制命名参数

在Python中,您可能有一个函数定义:

def info(object, spacing=10, collapse=1)
Run Code Online (Sandbox Code Playgroud)

可以通过以下任何一种方式调用:

info(odbchelper)                    
info(odbchelper, 12)                
info(odbchelper, collapse=0)        
info(spacing=15, object=odbchelper)
Run Code Online (Sandbox Code Playgroud)

感谢Python允许任意顺序参数,只要它们被命名.

我们遇到的问题是我们的一些较大的功能增长,人们可能会之间添加参数spacingcollapse,这意味着错误的值可以将未命名的参数.此外,有时候我们并不总是清楚需要注意什么.我们正在采用一种方法强迫人们命名某些参数 - 不仅仅是编码标准,而且理想情况下是标志或pydev插件?

所以在上面的4个例子中,只有最后一个会通过检查,因为所有参数都被命名.

赔率是我们只会为某些功能打开它,但任何关于如何实现这一点的建议 - 或者如果它甚至可能会被赞赏.

python coding-style function parameter-passing

94
推荐指数
5
解决办法
2万
查看次数

具有可选参数的PHP函数

我编写了一个可以接受10个参数的PHP函数,但只需要2个.有时,我想定义第八个参数,但我不想为每个参数输入空字符串,直到我达到第八个.

我的一个想法是传递带有参数数组的抽象函数,这些参数将它传递给实际函数.

有没有更好的方法来设置功能,所以我只能传入我想要的参数?

php function parameter-passing

94
推荐指数
7
解决办法
17万
查看次数

在Javascript/jQuery中,(e)是什么意思?

我是JavaScript/jQuery的新手,我一直在学习如何创建函数.许多功能都出现了(e)括号内.让我告诉你我的意思:

$(this).click(function(e) {
    // does something
});
Run Code Online (Sandbox Code Playgroud)

似乎该函数甚至不使用(e)的值,为什么它经常出现?

javascript parameters jquery function parameter-passing

84
推荐指数
6
解决办法
11万
查看次数

将许多参数传递给方法的最佳实践?

偶尔,我们必须编写接收许多参数的方法,例如:

public void doSomething(Object objA , Object objectB ,Date date1 ,Date date2 ,String str1 ,String str2 )
{
}
Run Code Online (Sandbox Code Playgroud)

当我遇到这种问题时,我经常将参数封装到地图中.

Map<Object,Object> params = new HashMap<Object,Object>();
params.put("objA",ObjA) ;

......

public void doSomething(Map<Object,Object> params)
{
 // extracting params 
 Object objA = (Object)params.get("objA");
 ......
 }
Run Code Online (Sandbox Code Playgroud)

这不是一个好的做法,将params封装到地图中完全是浪费效率.好处是,干净的签名,容易添加其他params与最少的修改.这种问题的最佳做法是什么?

java parameters performance parameter-passing

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

如何在'vagrant up'上传递参数并将其放在Vagrantfile的范围内?

我正在寻找一种方法将参数传递给Chef cookbook,如:

$ vagrant up some_parameter
Run Code Online (Sandbox Code Playgroud)

然后some_parameter在其中一个Chef cookbook中使用.

ruby command-line parameter-passing vagrant

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

参数可以不变吗?

我正在寻找与Java相当的C#final.它存在吗?

C#是否包含以下内容:

public Foo(final int bar);
Run Code Online (Sandbox Code Playgroud)

在上面的示例中,bar是一个只读变量,不能更改Foo().有没有办法在C#中做到这一点?

比如,也许我还有很长的方法,将与其合作x,yz一些对象(整数)的坐标.我想绝对肯定该函数不会以任何方式改变这些值,从而破坏数据.因此,我想宣读它们.

public Foo(int x, int y, int z) {
     // do stuff
     x++; // oops. This corrupts the data. Can this be caught at compile time?
     // do more stuff, assuming x is still the original value.
}
Run Code Online (Sandbox Code Playgroud)

c# const parameter-passing readonly

79
推荐指数
6
解决办法
4万
查看次数

Bash:传递函数作为参数

我需要在Bash中传递函数作为参数.例如,以下代码:

function x() {
  echo "Hello world"
}

function around() {
  echo "before"
  eval $1
  echo "after"
}

around x
Run Code Online (Sandbox Code Playgroud)

应输出:

before
Hello world
after
Run Code Online (Sandbox Code Playgroud)

我知道eval在那种情况下不正确,但这只是一个例子:)

任何的想法?

bash function callback parameter-passing

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

Django使用参数返回redirect()

在我的视图函数中,我想调用另一个视图并将数据传递给它:

return redirect('some-view-name', backend, form.cleaned_data)
Run Code Online (Sandbox Code Playgroud)

,其中后端是registration.backends对象,而form.cleaned_data是表单数据的字典(但必须以*args或**kwargs的形式发送,以防止Don't mix *args and **kwargs in call to reverse()!出现错误).从我在文档中找到的内容:

def my_view(request):
    ...
    return redirect('some-view-name', foo='bar')
Run Code Online (Sandbox Code Playgroud)

看起来我需要提供'some-view-name'参数,但它只是视图函数的名称,还是url的名称?所以我想使它类似于在django-registration中完成的方式,其中:

to, args, kwargs = backend.post_registration_redirect(request, new_user)
return redirect(to, *args, **kwargs)

def post_registration_redirect(self, request, user):
    return ('registration_complete', (), {})
Run Code Online (Sandbox Code Playgroud)

好的,我现在可以直接调用我的视图功能,还是需要提供一个网址?更重要的是,我的funciotn调用(以及需要时的URL)应该是什么样的?后端和cleaning_data都只是通过此视图传递以供以后使用.我试过这个,但不合适:

url(r'^link/$', some-view-name)   
def some-view-name(request, *args):
Run Code Online (Sandbox Code Playgroud)

除此之外:

return redirect('some_url', backend=backend, dataform.cleaned_data) 
url(r'^link/$', some-view-name)    
def some-view-name(request, backend, data):
Run Code Online (Sandbox Code Playgroud)

还是NoReverseMatch.但是在django-registration中,我看到过这样的事情:

url(r'^register/$',register,{'backend': 'registration.backends.default.DefaultBackend'}, name='registration_register'),

def register(request, backend, success_url=None, form_class=None,
             disallowed_url='registration_disallowed',
             template_name='user/login_logout_register/registration_form.html',
             extra_context=None):
Run Code Online (Sandbox Code Playgroud)

python django redirect parameter-passing

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

如何将所需参数传递给Powershell ISE中的脚本?

见标题.

我在脚本的头部指定了所需的参数:

param ($G_ARCHIVE = $(throw "Need file to upload!"),
       $G_LOGFILE = $(throw "Need logfile!"))
Run Code Online (Sandbox Code Playgroud)

当我想用Powershell ISE调试脚本时:我该如何填写这些参数?

powershell parameter-passing powershell-ise

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

如何在不使用全局变量的情况下在bash中返回数组?

我有一个创建数组的函数,我想将数组返回给调用者:

create_array() {
  local my_list=("a", "b", "c")
  echo "${my_list[@]}"
}

my_algorithm() {
  local result=$(create_array)
}
Run Code Online (Sandbox Code Playgroud)

有了这个,我只得到一个扩展的字符串.如何在不使用全局的情况下"返回"my_list?

arrays bash global-variables parameter-passing

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