类的单例模式

# new:创建对象自动调用
# new原理:返回值,返回值对象,当前类 -- 条件满足了  init
# 实例对象 -- instance
class Person(object):
    cls_shuxing = None
    # 控制只做一次初始化的开关 -- 开关打开 -- 表示判断
    is_First = True
    def __new__(cls, *args, **kwargs):
        if cls.cls_shuxing == None:
            # 创建对象 -- new
            cls.cls_shuxing = super().__new__(cls)
        return cls.cls_shuxing


    def __init__(self, name,age, sex,id):
        if self.is_First == True: # 实现只做一次初始化
            self.name = name
            self.age = age
            self.sex = sex
            self.id = id
            # 关掉开关
            self.is_First = False

    def __str__(self):
        return '名字是%s,年龄是%s,性别是%s,id是%s' % (self.name, self.age, self.sex, self.id)

dafan = Person('大凡', 18, '女',id=100)
print(dafan)
erfan = Person('二凡', 20, '男', id=110)
print(erfan)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏令仔很忙

新手学JAVA(一)——Equals和“==”的区别

    如果操作两边都是对象句柄,就比较两个句柄是否指向同一个对象。如果两边是基本类型,则比较的就是值。

901
来自专栏coder修行路

python基础之元组、文件操作、编码、函数、变量

1、集合set 集合是无序的,不重复的,主要作用: 去重,把一个列表变成集合,就可以自动去重 关系测试,测试两组数据的交集,差集,并集等关系 操作例子如下: ...

1869
来自专栏HTML5学堂

break以及continue语句

HTML5学堂:ECMAScript当中存在着break以及continue两种语句,这两种语句通常用于循环语句以及分支语句当中。那么,break以及conti...

3014
来自专栏coding for love

JS入门难点解析7-this

(注1:如果有问题欢迎留言探讨,一起学习!转载请注明出处,喜欢可以点个赞哦!) (注2:更多内容请查看我的目录。)

871
来自专栏Golang语言社区

[基础篇]Go语言变量

变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。变量可以通过变量名访问。 Go 语言变量名由字母、数字、下划线组成,其中首个字母不能为数字。 声...

3727
来自专栏java一日一条

Java常量池解析与字符串intern简介

  在Java应用程序运行时,Java虚拟机会保存一份内部的运行时常量池,它区别于class文件的常量池,是class文件常量池映射到虚拟机中的数据结构。 关于...

772
来自专栏pangguoming

理解js中的new

new 操作符 在有上面的基础概念的介绍之后,在加上new操作符,我们就能完成传统面向对象的class + new的方式创建对象,在Javascript中,我们...

3874
来自专栏个人分享

JAVA虚拟机类型转换学习

  Java虚拟机包括血多进行基本类型转换工作的操作码,这些执行转换工作的操作码后面没有操作数,转换的值从栈顶端获得。Java虚拟机从栈顶端弹出一个值,对它进行...

1175
来自专栏青玉伏案

窥探Swift之数组安全索引与数组切片

  今天是元宵节,祝大家元宵节快乐!在Swift中的数组和字典中下标是非常常见的,数组可以通过索引下标进行元素的查询,字典可以通过键下标来获取相应的值。在使用数...

2495
来自专栏抠抠空间

集合 (set) 的增删改查及 copy()方法

简介: 集合是无序的,不重复的数据集合,它里面的元素是可哈希的(不可变类型),但是集合本身是不可哈希(所以集合做不了字典的键)的。以下是集合最重要的两点: 1、...

29411

扫码关注云+社区