静态属性(Python与Java)

2024-05-08 03:21:15 发布

您现在位置:Python中文网/ 问答频道 /正文

Python类属性和Java静态属性有什么区别?在

例如

在Python中

class Example:
    attribute = 3

在Java中

^{pr2}$

在Python中,可以使用对实例的引用来访问静态属性?在


Tags: 实例属性example静态attributejavaclass区别
1条回答
网友
1楼 · 发布于 2024-05-08 03:21:15

在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中,静态和非静态字段不能具有相同的名称(下面将not编译,会出现错误“Duplicate field MyClass.i”):

^{pr2}$

此外,如果尝试从实例中分配静态字段,则会更改静态字段:

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

相关问题 更多 >