标签: default-parameters

在python中使用函数中的varargs传递默认参数

当我尝试以下操作时,我自己就会出错function definition.

>>> def mymap(*seq,pad=None):
  File "<stdin>", line 1
    def mymap(*seq,pad=None):
   SyntaxError: invalid syntax 
Run Code Online (Sandbox Code Playgroud)

我试图给参数的默认值pad.

但后来,我尝试了这个并且它有效(出于错误的原因):

>>> def mymap(pad=None,*seq):
...    print seq
>>> mymap([1,2,3],[4,5,6])
([4, 5, 6],)
[(4,)]
>>> 
Run Code Online (Sandbox Code Playgroud)

这不是印刷tupleseq应该是([1,2,3],[4,5,6]).

python function variadic-functions default-parameters

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

Powershell defaultparameterset不起作用。错误

我正在尝试使用参数集并使用默认参数集。但是默认参数集似乎不适用于我。任何帮助深表感谢。我可以轻松地使用带有默认操作的验证集,但我想知道我在这里做错了什么。

Param([cmdletbinding(DefaultParametersetname="Directory")] 
      [Parameter(Mandatory=$false,ParameterSetName="File")]
      [switch]$file, 
      [Parameter(Mandatory=$false,ParameterSetName="Directory")]  
      [switch]$directory,

[Parameter(Mandatory=$false,ParameterSetName="File")] 
[Parameter(Mandatory=$false,ParameterSetName="Directory")] 
[string]$Source,
[Parameter(Mandatory=$true,ParameterSetName="File")]  
[Parameter(Mandatory=$true,ParameterSetName="Directory")] 
[string]$DestinationPath, 
[Parameter(Mandatory=$false,ParameterSetName="Directory")] 
[Parameter(Mandatory=$false,ParameterSetName="File")]
[array]$Servers

PS C:\> Test-Script -Source "c:\somedirectory" -DestinationPath "c:\someotherdirectory"
Run Code Online (Sandbox Code Playgroud)

错误,如下图所示

测试脚本:无法使用指定的命名参数来解析参数集。
在第1行:char:1
+测试脚本-Source“ c:\ somedirectory” -DestinationPath“ c:\ someotherdirectory”
+ ~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~
+ CategoryInfo:InvalidArgument:(:) [测试脚本],ParameterBindingException
+ FullyQualifiedErrorId:AmbiguousParameterSet,测试脚本

powershell default-parameters parameter-sets

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

QList 默认参数错误消息(QList&lt;QVariant&gt; 的默认参数类型为 int)

我有以下方法(只有 1 个参数),我想适应用于 1 个以上的参数。我尝试使用默认参数,但这不起作用。(仅使用旧方法的原始代码工作正常)令我印象深刻的是该声明中省略了变量名称。为什么 ?

这是我原来的方法:

void importFile(QString *);
Run Code Online (Sandbox Code Playgroud)

这是我的新方法:

 void importFile(QString *, QList<QVariant> IMPORT_FILE_PARAMETERS =0 );
Run Code Online (Sandbox Code Playgroud)

当我编译这段代码时,Qt 告诉我“ QList IMPORT_FILE_PARAMETERS 的默认参数的类型为 int

问题是什么?我不使用 int - 他为什么要告诉我有关 int 的信息?

谢谢你的帮助

c++ parameters methods qt default-parameters

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

C++创建类的实例?

可能重复:
带空括号的默认构造函数
实例化带或不带括号的类?

程序:

class Foo
{
   public:
      Foo ( int bar = 1 )
      {
         cout << "bar=" << bar;
      }
};

int main() {

   cout << "0 - ";
   Foo foo_0 ( 0 ) ;
   cout << '\n';

   cout << "1 - ";
   Foo foo_1 ();
   cout << '\n';

   cout << "2 - ";
   Foo foo_4;
   cout << '\n';

   return 0;

}
Run Code Online (Sandbox Code Playgroud)

输出:

0 - bar=0
1 - 
2 - bar=1
Run Code Online (Sandbox Code Playgroud)

问题:为什么示例#1不起作用,而示例#0和#2呢?

c++ constructor class instance default-parameters

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

c ++ float array作为默认参数

我对c ++很陌生,我不能让它成功.对不起,但我一直使用的语言没有帮助我思考内存指针ans所以也许这是一个愚蠢的问题.

我想传递一个float数组作为默认参数.像这样:

void getHistogram(const Mat& src, MatND& hist, float range[]=NULL) {

    if(range==NULL) {
        double maxPixel=0;
        minMaxLoc(src, 0, &maxPixel, 0, 0);
        range = { 0, maxPixel +1 };
    }

    // now calculate histogram with the right range
    // something something
}
Run Code Online (Sandbox Code Playgroud)

我尝试了一些不同的语法,但我总是在一些错误的前面

histogram.cpp:21: warning: extended initializer lists only available with -std=c++0x or -std=gnu++0x
histogram.cpp:21: error: cannot convert ‘<brace-enclosed initializer list>’ to ‘float*’ in assignment
Run Code Online (Sandbox Code Playgroud)

编辑(但内存泄漏):

好的,这个答案我已经用这种方式解决了:

void imHist(const Mat& src, MatND& hist, float range[]=NULL) {

    if(range==NULL) {
        double …
Run Code Online (Sandbox Code Playgroud)

c++ arrays pointers default-parameters

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

为什么C#使调用者为具有可选参数的方法提供实际参数值?

本博客的最后一部分解释了以下内容:http://lostechies.com/jimmybogard/2010/05/18/caveats-of-c-4-0-optional-parameters/

但我仍然想知道为什么.

我最近遇到了Scala的默认参数.

在Scala中,被调用者为具有默认值的参数提供实际值.因此,不必重新编译所有调用者以使用更新的默认参数值.

如果Scala可以做到,我猜C#也可以做到.

所以为什么?他们为什么设计它容易出错?

编辑:

容易出错可能过于强烈,所以我的问题更像是这样:

为什么它的设计方式是默认参数的版本控制不会影响调用者?

c# scala language-design optional-parameters default-parameters

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

c#中方法的默认参数

我有以下方法签名,我想给我的一个参数一个默认值,但我不想给其他参数任何默认值 leadSourceStatus

protected PromotionCatalogResponseRootObject GetVideoPromotionCatalog(PromotionCatalogTypes catalogType = PromotionCatalogTypes.RESIDENTIAL, LeadSourceStatus leadSourceStatus)
Run Code Online (Sandbox Code Playgroud)

但是当我尝试这个时,我会收到错误

必须在所有必需参数后显示可选参数

处理这个问题的最佳方法是什么?

c# methods function default-parameters

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

为什么 'msg * alarm' 会在一段时间后消失?

我有一个小的 powershell 脚本,它允许我快速为自己设置警报。它基本上只是等待指定的分钟数然后调用

味精 * 警报!

这很有效 - 弹出一个消息框。唯一的问题是它会在一段时间后消失 - 所以如果我不在办公桌前,我会错过消息框。

根据此处找到的文档,这是我未指定时间值时的行为。

/time: seconds :指定您发送的消息在用户屏幕上显示的时间。一旦达到时间限制,消息就会消失。如果未设置时间限制,则该消息将保留在用户的屏幕上,直到用户看到该消息并单击“确定”。

然而事实并非如此,它确实消失了。现在,我必须指定一个任意高的数字才能保留。

    msg * /time:999999 alarm!
Run Code Online (Sandbox Code Playgroud)

windows parameters executable native default-parameters

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

如何定义 Vector2f 的默认参数?[SFML]

我在一个类中有一些函数 func Class

 void func(int arg1, int arg2, Vector2f vec = Vector2f(0,0)){}; 
Run Code Online (Sandbox Code Playgroud)

我收到一个构建错误:

error C2572: 'Classs::func': redefinition of default argument: parameter 1
Run Code Online (Sandbox Code Playgroud)

我尝试了许多不同的语法,但没有一个奏效。如何定义这种类型的默认参数?

c++ build-error sfml default-parameters

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

C++默认构造函数和默认参数

如果我有一个类包含:

foo(); //sets baz to 10
foo(int bar = 0); //sets baz to bar
int baz;
Run Code Online (Sandbox Code Playgroud)

是否会使用'默认'构造函数?

例如:

foo qux;
Run Code Online (Sandbox Code Playgroud)

默认为baz = 0或10?

任何区别:

foo * quux = new foo;
Run Code Online (Sandbox Code Playgroud)

c++ parameters polymorphism constructor default-parameters

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

错误CS0121有double和int

我有一个错误:

错误CS0121以下方法或属性之间的调用不明确:'Program.calculateFee(double,int)'和'Program.calculateFee(double)'DailyRate.

这是我的代码:

     void run()
        {
            double fee = calculateFee();
            Console.WriteLine("Fee is {0}", fee);
        }

        private double calculateFee(double theDailyRate = 500.0, int no0fdays = 1)
        {
            Console.WriteLine("calculateFee using two optional parameters");
            return theDailyRate * no0fdays;
        }

        private double calculateFee(double dailyRate = 500.0)
        {
            Console.WriteLine("calculateFee using one optional parameter");
            int defaultNo0fDays = 1;
            return dailyRate * defaultNo0fDays;
        }

        private double calulateFee()
        {
            Console.WriteLine("calculateFee using hardcoded values");
            double defaultDailyRate = 400.0;
            int defaultNo0fDays = 1;
            return defaultNo0fDays * defaultDailyRate;
        }
    }
} …
Run Code Online (Sandbox Code Playgroud)

c# default-parameters

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