>>> class T:
    __total = 0
    def __init__(self, value):
        if T.__total != 0:
            raise Exception('You can only create one instanse')
        self.value = value
        T.__total += 1

>>> t1 = T(3)

# 实例化第二个对象时出错
>>> t2 = T(5)
Traceback (most recent call last):
  File "<pyshell#8>", line 1, in <module>
    t2 = T(5)
  File "<pyshell#6>", line 5, in __init__
    raise Exception('You can only create one instanse')
Exception: You can only create one instanse

但是,由于Python对私有数据成员没有提供严格的访问控制保护机制,所以上面的代码无法避免下面的情况。

>>> T._T__total = 0
>>> t2 = T(5)
>>> T._T__total = 0
>>> t3 = T(8)
>>> t1
<__main__.T object at 0x0000018771177FD0>
>>> t2
<__main__.T object at 0x0000018771177F98>
>>> t3
<__main__.T object at 0x00000187711F8F98>

Python编写只允许实例化一个对象的类相关推荐

  1. 单实例类(只可以生成一个对象的类)

    在一些特殊场景下,不允许自由创建某类的对象,只允许为该类创建一个对象.实现步骤: 把该类的构造器使用private修饰,将该类的所有构造器隐藏 提供一个public方法作为该类的访问点,用于创建该类对 ...

  2. Python 第二十六章 面向对象 元类+反射+双下方法

    元类 class A:pass obj = A() print(type('abc')) print(type([1,2,3])) print(type((22,33)))# type 获取对象从属于 ...

  3. python中编完类后到实例编写_[零基础学python]编写类之一创建实例

    虽然已经对类有了一点点模糊概念,但是,阅读前面一讲的内容的确感到累呀,都是文字,连代码都没有. 本讲就要简单多了,尝试走一个类的流程. 说明:关于类的这部分,我参考了<Learning Pyth ...

  4. python实例化对象代码_python实例化一个对象

    Python中的类为什么要实例化为一个对象才能使用 打个比方: class 人类(object): def __init__(self,性别,年龄,姓名等等): self.性别=性别 self.年龄= ...

  5. Python 编写一个学生类

    Python 编写一个学生类,要求有一个计数器,每次实例化后计数实例化了多少个学生 class school():def __init__(self, name, sex, age):self.nam ...

  6. python编写自定义模块_编写和导入自定义模块/类

    我有一个类,我正试图编写一个名为dbObject的类,并试图从另一个文件夹中的脚本导入它.我的结构如下:/var/www/html/py/testobj.py /var/www/html/py/obj ...

  7. Python编写汽车类

    Python编写汽车类 编写程序并测试,有一个汽车类 Vehicle,类中的私有数据成员为车轮个数 wheels 和车重 weight:小车类 Car 是汽车类 vehicle 派生类,其中包含载客人 ...

  8. c++编写手机小游戏代码_只需22行代码,用python编写自己的小游戏

    假期最后一天,有些人在外面玩累了,有些人躺在家里快发霉了,闲暇时候不如动动手做个小游戏玩一玩吧! 本文实例为大家分享了python编写猜数字小游戏的具体代码,供大家参考,具体内容如下 1 import ...

  9. python 面向对象程序设计 1.2 编写程序,定义一个Circle类,根据圆的半径求周长和面积。

    题目: 编写程序,定义一个Circle类,根据圆的半径求周长和面积.再由Circle类创建两个圆对象,其半径分别为5和10,要求输出各自的周长和面积. 代码: from cmath import pi ...

最新文章

  1. “数学不行,还能干点啥?”面试官+CTO:干啥都费劲!
  2. php fpm 三个模式_php-fpm运行原理和模式的简单介绍
  3. 激光SLAM学习--数据处理和特征提取
  4. .net 后台读取pdf的值
  5. Black Hat 2017黑帽大会:8款值得一看的黑客工具
  6. C++ exit 与 return 浅析
  7. 工作136:eachrt
  8. 群晖远程访问服务器,如何通过远程访问访问Synology中的所有数据
  9. java.util.vector中的vector的详细用法
  10. 计算机调试员高级理论知识试卷,电子计算机设备调试员(高级)考核复习题—理论试题.doc...
  11. 需求分析 转自:http://fangang.iteye.com/blog/1345099
  12. 软考软件设计师下午真题-面向对象的程序设计与实现-访问者设计模式(2015年上半年试题六)Java代码讲解
  13. Python分析【崩坏学园2】凝魔纹心所输出
  14. 如何挑选微信第三方开发商
  15. 单模和多模光纤的区别是什么?
  16. jmeter学习指南之生成html性能结果报告(篇幅较长谨慎阅读)
  17. wordpress头像被墙_如何在WordPress中添加新的默认头像
  18. 基于javaweb+mysql的农产品水果店销售管理系统
  19. 「季淳卿」零基础学习 MyBatis-Plus-springBoot(笔记总结)
  20. 小波图像融合综述(1)

热门文章

  1. python mysql数据库的高级应用_Python之路第十二天,高级(5)-Python操作Mysql,SqlAlchemy...
  2. powercfg -h off_万代 S.H.Figuarts「假面骑士01 金属腾蝗形态」
  3. 浙江师范大学c语言函数实验答案,浙江师范大学《C语言程序设计》考试卷
  4. 测试自己幸运数字的软件,心理测试:选一个你的幸运数字,测一下你最近会有什么好事发生?...
  5. 外键mysql缺省级联_mysql的外键约束级联修改和删除整理
  6. php laravel导入excel,Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解
  7. 魔兽世界终端服务器,《魔兽世界》怀旧服数据已上传服务器:登录画面引人怀念...
  8. ImageIO 合并图片工具
  9. 基于JAVA+SpringMVC+Mybatis+MYSQL的学习资源交互系统
  10. 基于JAVA+SpringMVC+Mybatis+MYSQL的图书馆预约占座管理系统