我有一个简单的类,每次创建该类的实例时,我希望类变量增加如何使用此代码执行此操作:
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
答案 0 :(得分:4)
只需在__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
如果您使用的是Python 2,请不要忘记从object
继承。
请参阅What is the purpose of subclassing the class "object" in Python?
答案 1 :(得分:2)
您必须在__init__
中将类的变量增加为:
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
答案 2 :(得分:0)
使用__init__
方法增加类变量:
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