我有一个简单的类,每次创建该类的实例时,我都希望类变量递增,我应该如何使用以下代码执行此操作:
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)
简单地增加类变量__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 中对类“对象”进行子类化的目的是什么?
您必须在__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)
| 归档时间: |
|
| 查看次数: |
5782 次 |
| 最近记录: |