每个python对象都有一个int

MAG*_*Gx2 3 python java int static

可能重复:
类实例的自动递增ID

我想要像Python中的以下Java类:

public class MyObject {
    private static int ID = 0;
    private final int id;
    public MyObject() {
        id = ID++;
    }
}
Run Code Online (Sandbox Code Playgroud)

在这个Java代码中,每个myObject都有,id并且两个对象不可能具有相同的ID(它是单线程应用程序).

我可以在Python中做这样的事吗?

Mar*_*ers 8

在Python中,您可以直接引用class属性:

class MyObject(object):
    ID = 0

    def __init__(self):
       self.id = MyObject.ID = MyObject.ID + 1
Run Code Online (Sandbox Code Playgroud)

演示:

>>> class MyObject(object):
...     ID = 0
...     def __init__(self):
...        self.id = MyObject.ID = MyObject.ID + 1
... 
>>> MyObject().id
1
>>> MyObject().id
2
>>> MyObject().id
3
>>> MyObject.ID
3
Run Code Online (Sandbox Code Playgroud)