Python编写只允许实例化一个对象的类
>>> 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编写只允许实例化一个对象的类相关推荐
- 单实例类(只可以生成一个对象的类)
在一些特殊场景下,不允许自由创建某类的对象,只允许为该类创建一个对象.实现步骤: 把该类的构造器使用private修饰,将该类的所有构造器隐藏 提供一个public方法作为该类的访问点,用于创建该类对 ...
- Python 第二十六章 面向对象 元类+反射+双下方法
元类 class A:pass obj = A() print(type('abc')) print(type([1,2,3])) print(type((22,33)))# type 获取对象从属于 ...
- python中编完类后到实例编写_[零基础学python]编写类之一创建实例
虽然已经对类有了一点点模糊概念,但是,阅读前面一讲的内容的确感到累呀,都是文字,连代码都没有. 本讲就要简单多了,尝试走一个类的流程. 说明:关于类的这部分,我参考了<Learning Pyth ...
- python实例化对象代码_python实例化一个对象
Python中的类为什么要实例化为一个对象才能使用 打个比方: class 人类(object): def __init__(self,性别,年龄,姓名等等): self.性别=性别 self.年龄= ...
- Python 编写一个学生类
Python 编写一个学生类,要求有一个计数器,每次实例化后计数实例化了多少个学生 class school():def __init__(self, name, sex, age):self.nam ...
- python编写自定义模块_编写和导入自定义模块/类
我有一个类,我正试图编写一个名为dbObject的类,并试图从另一个文件夹中的脚本导入它.我的结构如下:/var/www/html/py/testobj.py /var/www/html/py/obj ...
- Python编写汽车类
Python编写汽车类 编写程序并测试,有一个汽车类 Vehicle,类中的私有数据成员为车轮个数 wheels 和车重 weight:小车类 Car 是汽车类 vehicle 派生类,其中包含载客人 ...
- c++编写手机小游戏代码_只需22行代码,用python编写自己的小游戏
假期最后一天,有些人在外面玩累了,有些人躺在家里快发霉了,闲暇时候不如动动手做个小游戏玩一玩吧! 本文实例为大家分享了python编写猜数字小游戏的具体代码,供大家参考,具体内容如下 1 import ...
- python 面向对象程序设计 1.2 编写程序,定义一个Circle类,根据圆的半径求周长和面积。
题目: 编写程序,定义一个Circle类,根据圆的半径求周长和面积.再由Circle类创建两个圆对象,其半径分别为5和10,要求输出各自的周长和面积. 代码: from cmath import pi ...
最新文章
- “数学不行,还能干点啥?”面试官+CTO:干啥都费劲!
- php fpm 三个模式_php-fpm运行原理和模式的简单介绍
- 激光SLAM学习--数据处理和特征提取
- .net 后台读取pdf的值
- Black Hat 2017黑帽大会:8款值得一看的黑客工具
- C++ exit 与 return 浅析
- 工作136:eachrt
- 群晖远程访问服务器,如何通过远程访问访问Synology中的所有数据
- java.util.vector中的vector的详细用法
- 计算机调试员高级理论知识试卷,电子计算机设备调试员(高级)考核复习题—理论试题.doc...
- 需求分析 转自:http://fangang.iteye.com/blog/1345099
- 软考软件设计师下午真题-面向对象的程序设计与实现-访问者设计模式(2015年上半年试题六)Java代码讲解
- Python分析【崩坏学园2】凝魔纹心所输出
- 如何挑选微信第三方开发商
- 单模和多模光纤的区别是什么?
- jmeter学习指南之生成html性能结果报告(篇幅较长谨慎阅读)
- wordpress头像被墙_如何在WordPress中添加新的默认头像
- 基于javaweb+mysql的农产品水果店销售管理系统
- 「季淳卿」零基础学习 MyBatis-Plus-springBoot(笔记总结)
- 小波图像融合综述(1)
热门文章
- python mysql数据库的高级应用_Python之路第十二天,高级(5)-Python操作Mysql,SqlAlchemy...
- powercfg -h off_万代 S.H.Figuarts「假面骑士01 金属腾蝗形态」
- 浙江师范大学c语言函数实验答案,浙江师范大学《C语言程序设计》考试卷
- 测试自己幸运数字的软件,心理测试:选一个你的幸运数字,测一下你最近会有什么好事发生?...
- 外键mysql缺省级联_mysql的外键约束级联修改和删除整理
- php laravel导入excel,Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解
- 魔兽世界终端服务器,《魔兽世界》怀旧服数据已上传服务器:登录画面引人怀念...
- ImageIO 合并图片工具
- 基于JAVA+SpringMVC+Mybatis+MYSQL的学习资源交互系统
- 基于JAVA+SpringMVC+Mybatis+MYSQL的图书馆预约占座管理系统