在Python中动态递增类变量
我有一个简单的类,每次创建该类的实例时,我都希望该类变量递增,我应该如何使用以下代码:在Python中动态递增类变量,python,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 只需在\uuuu in
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
只需在
\uuuu init\uuuu
中增加类变量:
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
如果您使用的是Python2,请不要忘记从object
生成子类
请参见您必须在
\uuuu init\uuuu
中增加类的变量,如下所示:
class Person:
person_count = 0
def __init__(self, username):
self.username = username
self.__class__.person_count += 1
# OR,
# Person.person_count += 1
例如:
>>> ashley = Person("Ash")
>>> ashley.person_count
1
>>> daphne = Person("Daph")
>>> daphne.person_count
2
您也可以使用类直接提取计数,如下所示:
>>> Person.person_count
2
使用
\uuuu init\uuuu
方法增加类变量:
class Person:
person_count = 0
def __init__(self, username):
self.username = username
Person.person_count += 1
可以使用类的名称访问类变量,因此在本例中,Person
。请记住,您也可以从实例访问该类变量,因此:
>>> p1 = Person('person1')
>>> Person.person_count
1
>> p1.person_count
1
>> p2 = Person('person2')
>>> Person.person_count
2
>> p1.person_count
2
>> p2.person_count
2