在 Python 中动态增加类变量

ted*_*123 4 python

我有一个简单的类,每次创建该类的实例时,我都希望类变量递增,我应该如何使用以下代码执行此操作:

class Person:

    person_count = 0

    def __init__(self, username):
        self.username = username

ashley = Person("Ash")
daphne = Person("Daph")

Person.person_count #I want this to be 2
Run Code Online (Sandbox Code Playgroud)

Mos*_*oye 5

简单地增加类变量__init__

class Person(object):

    person_count = 0

    def __init__(self, username):
        self.username = username
        Person.person_count += 1  # here

ashley = Person("Ash")
daphne = Person("Daph")

print(Person.person_count)
# 2
Run Code Online (Sandbox Code Playgroud)

object如果您使用的是 Python 2 ,请不要忘记从子类化。

请参阅在 Python 中对类“对象”进行子类化的目的是什么?


Moi*_*dri 5

您必须在__init__as 中增加类的变量:

class Person:
    person_count = 0
    def __init__(self, username):
        self.username = username
        self.__class__.person_count += 1
        # OR, 
        # Person.person_count += 1
Run Code Online (Sandbox Code Playgroud)

例子:

>>> ashley = Person("Ash")
>>> ashley.person_count
1
>>> daphne = Person("Daph")
>>> daphne.person_count
2
Run Code Online (Sandbox Code Playgroud)

您也可以直接使用类提取计数:

>>> Person.person_count
2
Run Code Online (Sandbox Code Playgroud)