类对象实例计数

Posted 风-fmgao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了类对象实例计数相关的知识,希望对你有一定的参考价值。

练习1:编写一个学生类,产生一堆学生对象, (5分钟)

要求:

  1. 有一个计数器(属性),统计总共实例了多少个对象

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# @Time    : 2018/5/31 8:51
# @File    : Person.py

方法一:类中定义一个list,可以实现计数
# class Person:
#     count = []
#
#     def __init__(self, name, age):
#         self.name = name
#         self.age = age
#         self.count.append(self.name)
#
#
# for i in range(10):
#     i = Person(‘alex‘, 10+i)
#     print(i.__dict__)
#
# print(i.count)
# print(len(i.count))

方法二:(错误) 类中定义一个常数,不可以正常计数,

原因是:

深浅拷贝的问题
可变数据类型list和不可变数据类型str的区别


class Person:
    count = 0

    def __init__(self, name, age):
        self.name = name
        self.age = age
        self.count = self.count + 1


for i in range(10):
    i = Person(‘alex‘, 10+i)
    print(i.__dict__)

print(i.count)

以上是关于类对象实例计数的主要内容,如果未能解决你的问题,请参考以下文章

[当我在研究Cocos-2dx的源代码时,我在想什么]-Ref类,一切的起源

swift 学习之自动引用计数

JUC并发编程 --单例模式

在 C++ 中使用另一个类的对象计数在一个类中创建一个数组

Seurat 3.0 实例教程

单例模式