如何统计一个实例的Index?

How to count the Index of an instance?

我想像这样启动多个服务器:

Server 1
Server 2
Server 3

我已经写好了代码:

class Server:
     def __init__(self, index):
          self.index = index

我的主图是这样的:

server1 = Server(1)
server1.run()

所以我的问题是,你可以在标题中看到: 如何全局动态统计不同实例(服务器)的索引?

将实例总数存储在 class 变量中。

class Server:
    instances = 0   
    def __init__(self):
         Server.instances += 1
         self.index = Server.instances

跨多个实例解决此问题需要做更多的工作。您必须使用一个文件来保存计数器,并且您必须确保两个进程不会争夺下一个打开文件的人。这应该适用于 Linux:

import fcntl
class Server:
    CNTR = 'mycounter.txt'
    def __init__(self):
        if not os.path.exists(CNTR):
            open(CNTR,'w').write('0')
        fctl.lock( f, fcntl.LOCK_EX )
        n = int(open(CNTR).read()) + 1
        open(CNTR,'w').write(str(n))
        fctl.lock( f, fcntl.LOCK_UN )

        self.index = n