标签: class-attribute

Kotlin:在构造函数中初始化类属性

我创建了一个带有class属性的Kotlin类,我想在构造函数中初始化它:

public class TestClass {

    private var context : Context? = null // Nullable attribute

    public constructor(context : Context) {
       this.context = context
    }

    public fun doSomeVoodoo() {
       val text : String = context!!.getString(R.string.abc_action_bar_home_description)
    }
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,我必须使用"?"将属性声明为Nullable.符号,虽然该属性将在构造函数中初始化.将此属性声明为Nullable属性使得始终需要强制使用"!!"的NonNull值 或者用"?"提供空检查.

有没有办法避免这种情况,如果class属性将在构造函数中初始化?我想欣赏像这样的解决方案:

public class TestClass {

    private var context : Context // Non-Nullable attribute

    public constructor(context : Context) {
       this.context = context
    }

    public fun doSomeVoodoo() {
       val text : String = context.getString(R.string.abc_action_bar_home_description)
    }
}
Run Code Online (Sandbox Code Playgroud)

constructor class-attribute kotlin

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

将html类属性用作javascript句柄是不好的做法

我经常需要使用jquery一次选择多个元素...为此我通常只是为我想要选择的所有元素添加一个类,然后使用jquery按类选择.

这是一个不好的做法,还是应该使用类似html 5数据属性的东西?

html html5 class-attribute

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

python 类和类属性什么时候被垃圾收集?

class Member(object):
    def __init__(self, identifier):
        self.identifier = identifier
        print "Member __init__", self.identifier

    def __del__(self):
        print "Member __del__", self.identifier
        with open("/home/might/" + self.identifier, "w") as outF:
            outF.write(self.identifier)

class WithMembers(object):
    def __init__(self):
        print "WithMembers __init__"
        print WithMembers.classMem
        self.instanceMem = Member("instance mem")

    def __del__(self):
        print "WithMembers __del__"

    classMem = Member("class mem")

if __name__ == "__main__":
    print "main"
    WithMembers()
    #del WithMembers.classMem       # "Member __del__ class mem" before "end"
    #del WithMembers                # "Member __del__ class mem" after "end"
    print "end"
Run Code Online (Sandbox Code Playgroud)

上面的代码在 Hidden.py 中,运行python Hidden.py …

python garbage-collection class class-attributes class-attribute

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

访问类中类属性的pythonic方法

我想知道你怎么认为从类中的函数访问类属性的方法.我没有在PEP8中找到一个参考或一个关于它的流行问题.例如

class MyClass(object):
    BAR = 1
    def foo(self):
        # Way A:
        print(self.BAR)

        # Way B:
        print(MyClass.BAR)
Run Code Online (Sandbox Code Playgroud)

通过'self'访问似乎是合理的,因为属性由同一个类拥有,对于明显的同类引用具有近似引用.另一方面,通过类名称本身的访问是清楚的,因为它是静态的并且使得使用的起源清晰,并且因为它与类的名称配对而更加清晰.

python reference class-attribute

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

Python中的类属性

以下两段代码有什么区别吗?如果没有,是否优先于另一个?为什么我们可以动态创建类属性?

片段1

class Test(object):
    def setClassAttribute(self):
        Test.classAttribute = "Class Attribute"

Test().setClassAttribute()
Run Code Online (Sandbox Code Playgroud)

片段2

class Test(object):
    classAttribute = "Class Attribute"

Test()
Run Code Online (Sandbox Code Playgroud)

python class-attribute

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