练习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 #操作的是每个对象自己的属性,不是类的

  #正确写法:操作的类的属性,类每次实例都会加1

  Person.count += 1




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

print(i.count)

相关文章:

  • 2021-06-12
  • 2021-12-10
  • 2022-12-23
  • 2022-12-23
  • 2021-10-03
  • 2021-05-28
  • 2021-11-10
  • 2021-05-15
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-06-11
  • 2022-12-23
  • 2022-12-23
  • 2021-08-25
  • 2021-07-02
相关资源
相似解决方案