廖雪峰python教程 面向对象编程之实例属性和类属性

练习

为了统计学生人数,可以给Student类增加一个类属性,每创建一个实例,该属性自动增加:

# -*- coding: utf-8 -*-
class Student(object):count = 0def __init__(self, name):self.name = nameStudent.count+ = 1# 测试:
if Student.count != 0:print('测试失败!')
else:bart = Student('Bart')if Student.count != 1:print('测试失败!')else:lisa = Student('Bart')if Student.count != 2:print('测试失败!')else:print('Students:', Student.count)print('测试通过!')

在__init__函数中使count+1,那么新建Student类实例并初始化时,就会达到count属性自动增加的效果

测试结果:

Students: 2
测试通过!

另一种方法,参考了这篇文章
他在Student类属性中新增一个函数__set_count()

def __set_count(self):Student.count + = 1

在这个练习中需注意count是类属性,其调用方式为Student.count

python面向对象编程之实例属性和类属性相关推荐

  1. python中属性和类级变量_六、Python类变量和实例变量(类属性和实例属性)

    我们知道,无论是在类中定义的属性还是方法,在类的外部,都无法直接调用它们,因此,我们完全可以把类看做是一个独立的作用域(称为类命名空间),则类属性其实就是定义在类命名空间内的变量(类方法其实就是定义的 ...

  2. Python 实例属性和类属性

    由于Python是动态语言,根据类创建的实例可以任意绑定属性. 给实例绑定属性的方法是通过实例变量,或者通过self变量: class Student(object):def __init__(sel ...

  3. python实例属性与类属性_Python中的类属性和实例属性引发的一个坑-续

    上篇文章Python 中的类属性和实例属性,我们探讨了类属性和实例属性引发的一个小坑.总结了类属性和实例属性的区别如下:类属性可以被类和实例调用,实例属性只能被实例调用 类属性不会随着实例的调用而改变 ...

  4. python类属性和实例属性_Python 类属性与实例属性,类对象与实例对象用法分析...

    本文实例讲述了Python 类属性与实例属性,类对象与实例对象用法.分享给大家供大家参考,具体如下: demo.py(类属性,所有实例对象共用类属性): # 定义工具类 继承object是为了兼容py ...

  5. python实例属性与类属性_Python 面向对象编程:类的创建与初始化、实例属性与方法、类属性与方法...

    1. 类的创建并实例化 类的定义:在Python中,类通过class 关键字定义.按照 Python 的编程习惯,类名以大写字母开头,紧接着是(object),表示该类是从哪个类继承下来的.下面是一个 ...

  6. Python基础-不要对实例属性和类属性使用相同的名字

    示例 #!/usr/bin/env python3 # -*- coding: utf-8 -*- # 不要对实例属性和类属性使用相同的名字class Duck(object):name = &quo ...

  7. python类中的属性分为类属性和实例属性两种_python从入门到大神---1、初始化实例、类属性、方法...

    python从入门到大神---1.初始化实例.类属性.方法 一.总结 一句话总结: 方法不加括号是代码段:感觉python方法和js,php很类似,不加括号是代码段,加括号变成方法,比如f,f() 1 ...

  8. Python 进阶_OOP 面向对象编程_类属性和方法

    目录 目录 类属性 调用类属性 查看类属性 特殊的类属性 类方法 真构造器 __new__ 类属性 在理解类属性之前要先搞清楚 实例属性 和 函数属性 之间的区别: 1. 实例属性:指的是实例化类对象 ...

  9. python类中的属性分为类属性和实例属性两种_python中类和实例如何绑定属性与方法示例详解...

    前言 python类与实例的方法的调用中觉得云里雾里,思考之后将自己的想法记录下,一来加深自己理解,巩固自己记忆,而来帮助一些想要学习python的朋友理解这门抽象的语言,由于Python是动态语言, ...

最新文章

  1. EOS之记事本智能合约
  2. 漫谈linux文件IO
  3. 经典java NIO框架
  4. mongodb3.0 性能測试报告 一
  5. 深度学习PyTorch,TensorFlow中GPU利用率较低,使用率周期性变化的问题
  6. paip.Winista HTMLParser文本结点的获取
  7. java多线程读取分割的文件_java多线程批量读取文件(二)--读写分离
  8. 1GB等于2的多少次方
  9. 综合日语第一册第十三课
  10. 紫光国芯 数字后端 面经
  11. e7用什么主板_八路E7的下场如何?盘点历代至尊版处理器现价
  12. 玫瑰花瓣 c4d_在玫瑰周围打花瓣
  13. 高通Sensor校准
  14. java对象与对象引用变量
  15. 计算机看门狗的作用,关于看门狗的作用
  16. docker-compose 部署 php + nginx + mysql + redis
  17. 学习C语言有什么书适合新手看
  18. 【详细版】VMware上安装Windows 11虚拟机
  19. Arduino 编程 - LED灯闪烁
  20. apache-poi之Excel使用API

热门文章

  1. .NET深入学习笔记(4):深拷贝与浅拷贝(Deep Copy and Shallow Copy)
  2. 光伏等新能源信用风险事件频繁爆发
  3. node+bower+gulp+webpack初见
  4. Spring与Hibernate整合中,使用OpenSessionInViewFilter后出现sessionFactory未注入问题
  5. Windows Azure 安全最佳实践 - 第 4 部分:需要采取的其他措施
  6. 李天平×××作诞生记——《亮剑.NET:.NET深入体验与实战精要》
  7. kangle支不支持PHP_【转载】PHP调用kangle的API
  8. spyder python调试_使用spyder编译器单步调试python
  9. php怎么使得字体滚动,滚动文字+字体特效代码(全集)
  10. PHP 框架 模块化,Laravel 的模块化开发框架 Notadd RC1