标签: default-value

Python中默认参数的范围是什么?

当您使用数组参数在Python中定义函数时,该参数的范围是什么?

这个例子来自Python教程:

def f(a, L=[]):
    L.append(a)
    return L

print f(1)
print f(2)
print f(3)
Run Code Online (Sandbox Code Playgroud)

打印:

[1]
[1, 2]
[1, 2, 3]
Run Code Online (Sandbox Code Playgroud)

我不太确定我是否理解这里发生的事情.这是否意味着数组的范围超出了函数的范围?为什么数组会记住从调用到调用的值?来自其他语言,只有当变量是静态的时候我才会期望这种行为.否则它似乎应该每次重置.实际上,当我尝试以下内容时:

def f(a):
    L = []
    L.append(a)
    return L
Run Code Online (Sandbox Code Playgroud)

我得到了我期望的行为(每次调用都重置了数组).

所以在我看来,我只需要def f(a, L=[]):解释这一行- L变量的范围是什么?

python parameters scope function-calls default-value

25
推荐指数
2
解决办法
3556
查看次数

为什么Scala语言要求您初始化实例变量而不是依赖于默认值?

Scala语言要求您在使用之前初始化实例变量.但是,Scala不为您的变量提供默认值.相反,您必须使用通配符下划线手动设置其值,该下划线的作用类似于默认值,如下所示

var name:String = _
Run Code Online (Sandbox Code Playgroud)

我知道,我知道......我可以在类定义中定义一个构造函数,它将实例变量作为参数,因此Scala不会强制其初始化,如下所示

class Person(var name:String) 
Run Code Online (Sandbox Code Playgroud)

但是,我需要在体内声明它,因为我需要使用其元素为FIELD或METHOD的Java注释; 也就是说,它只能应用于在我们类的主体中声明的实例变量或方法.

问题:为什么Scala语言要求您初始化一个实例变量 - 无论是默认值_还是您想要的任何内容 - 在类的主体中声明而不是依赖于默认值?

scala initialization instance-variables default-value

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

如何在ASP.NET中为自动实现的属性设置默认值

我开始知道C#3.0带有Auto-Implemented Properties的新功能,我喜欢它,因为我们不必在此声明额外的私有变量(与之前的属性相比),之前我使用的是属性,即

private bool isPopup = true;
public bool IsPopup
{
    get
    {
      return isPopup;
    }
    set
    {
      isPopup = value;
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我已将其转换为Auto-Implemented属性即

public bool IsPopup
{
    get; set;
}
Run Code Online (Sandbox Code Playgroud)

我想将此属性的默认值设置为true而不使用它甚至在page_init方法中,我尝试但没有成功,任何人都可以解释如何做到这一点?

c# asp.net automatic-properties default-value

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

mysql将字段默认值设置为其他列

如何将字段的默认值设置为Mysql中的其他列我已经使用虚拟字段完成了oracle但我不知道如何在Mysql中执行此操作这是我的表:

create table TSM_TRANSACTION_TBL
(
  TRANS_ID     INT primary key auto_increment,
  LOCATION_ID  INT,
  TRANS_DATE   DATE,
  RESOURCE_ID  INT,
  TS_ID        INT,
  MAX_VALUE    INT,
  BOOKED_UNITS INT default 0,
  REMAINING    INT default MAX_VALUE - BOOKED_UNITS,
  BOOKED       INT not null,
  USER_ID      INT,
  TRANS_TIME   TIMESTAMP
)
Run Code Online (Sandbox Code Playgroud)

mysql default default-value

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

为什么我必须在默认为0时为C#中的int赋值?

这有效:

class MyClass
{
    int a;

    public MyClass()
    {
        int b = a;
    }
}
Run Code Online (Sandbox Code Playgroud)

但这会产生编译错误("使用未分配的局部变量'a'"):

class MyClass
{
    public MyClass()
    {
        int a;
        int b = a;
    }
}
Run Code Online (Sandbox Code Playgroud)

据我所知,这是因为在第一个例子中,从技术上讲,编译器不知道没有分配'a'.在后一个例子中,'a'是在本地定义的,因此很容易跟踪.

但为什么后一个例子不起作用?

不要将整数默认为0吗?这是编译器对"最佳实践"强制执行的操作.还是有其他原因吗?

c# int default initialization default-value

24
推荐指数
2
解决办法
4756
查看次数

检查给定对象(引用或值类型)是否等于其默认值

我试图找到一种方法来检查并查看给定对象的值是否等于其默认值.我环顾四周,想出了这个:

    public static bool IsNullOrDefault<T>(T argument)
    {
        if (argument is ValueType || argument != null)
        {
            return object.Equals(argument, default(T));
        }
        return true;
    }
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是我想这样称呼它:

            object o = 0;
            bool b = Utility.Utility.IsNullOrDefault(o);
Run Code Online (Sandbox Code Playgroud)

是o是一个对象,但我想让它弄清楚基类型并检查它的默认值.在这种情况下,基类型是一个整数,我想在这种情况下知道该值是否等于default(int),而不是default(object).

我开始认为这可能是不可能的.

c# generics default-value

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

python中空用户输入的默认值

如果用户将从键盘输入值,我必须设置默认值.以下是用户可以输入值的代码:

input = int(raw_input("Enter the inputs : "))
Run Code Online (Sandbox Code Playgroud)

这里的值将input在输入值后分配给变量并点击'Enter',是否有任何方法,如果我们不输入值并直接点击'Enter'键,变量将直接指定默认值,如input = 0.025.

python user-input default-value

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

设置C#可选参数的默认值

每当我尝试将可选参数的默认值设置为资源文件中的某些内容时,我都会得到编译时错误

'message'的默认参数值必须是编译时常量.

有什么办法可以改变资源文件的工作方式来实现这个目标吗?

public void ValidationError(string fieldName, 
                            string message = ValidationMessages.ContactNotFound)
Run Code Online (Sandbox Code Playgroud)

在这里,ValidationMessages是一个资源文件.

c# default-value optional-parameters

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

如何更改继承的依赖项属性的默认值?

如何更改继承的依赖项属性的默认值?在我们的例子中,我们创建了一个Control的子类,默认情况下它的Focusable设置为'true'.我们希望我们的子类具有默认值'false'.

我们一直在做的只是在构造函数中将其设置为'false',但如果有人使用ClearValue,它将返回默认值,而不是构造函数中设置的值.

以下是我目前正在做的事情(这是一个带有'Foo'DP的测试控件的例子.)我不是隐藏属性的'新'的粉丝虽然感谢AddOwner,但它确实指出了到同一个共享实例所以我猜它没关系.它看起来像是继承了所有其他元数据值,所以这很好.只是想知道这是否正确?

public class TestControlBase : Control
{

    public static readonly DependencyProperty FooProperty = DependencyProperty.Register(
        "Foo",
        typeof(int),
        typeof(TestControlBase),
        new FrameworkPropertyMetadata(4) // Original default value
    );

    public int Foo
    {
        get { return (int)GetValue(FooProperty); }
        set { SetValue(FooProperty, value); }
    }

}

public class TestControl : TestControlBase
{

    public static readonly new DependencyProperty FooProperty = TestControlBase.FooProperty.AddOwner(
        typeof(TestControl),
        new FrameworkPropertyMetadata(67) // New default for this subclass
    );

}
Run Code Online (Sandbox Code Playgroud)

标记

更新中...

我认为这更好,因为它消除了"新"呼叫.您仍然可以通过基类上的FooProperty访问它,因为它使用了AddOwner.因此,它在技术上是相同的.

public class TestControl : …
Run Code Online (Sandbox Code Playgroud)

wpf dependency-properties subclass default-value

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

属性默认值null是否与默认值相同?

因此,我可以安全地重构所有的实例

class Blah
{
    // ...
    private $foo = null;
    // ...
}
Run Code Online (Sandbox Code Playgroud)

class Blah
{
    // ...
    private $foo;
    // ...
}
Run Code Online (Sandbox Code Playgroud)

php null properties default-value

23
推荐指数
3
解决办法
6953
查看次数