Python类属性和Java静态属性之间有什么区别?
例如,
在Python中
class Example:
attribute = 3在Java中
public class Example {
private static int attribute;
}在Python中,可以使用对实例的引用来访问静态属性?
发布于 2016-05-03 17:44:34
在Python中,可以有一个类变量和一个同名的实例变量[Static class variables in Python]:
>>> class MyClass:
... i = 3
...
>>> MyClass.i
3
>>> m = MyClass()
>>> m.i = 4
>>> MyClass.i, m.i
>>> (3, 4)在Java中,不能有同名的静态字段和非静态字段(以下不编译,您将得到错误“重复字段MyClass.i"):
public class MyClass {
private static int i;
private int i;
}此外,如果尝试从实例中分配静态字段,它将更改静态字段:
public class MyClass {
private static int i = 3;
public static void main(String[] args) {
MyClass m = new MyClass();
m.i = 4;
System.out.println(MyClass.i + ", " + m.i);
}
}4,4
在Java和Python中,您都可以从实例访问静态变量,但不需要:
Python:
>>> m = MyClass()
>>> m.i
3
>>> MyClass.i
3爪哇:
public static void main(String[] args) {
System.out.println(new MyClass().i);
System.out.println(MyClass.i);
}3. 3.
https://stackoverflow.com/questions/37010773
复制相似问题