代码改变世界

2018.3.26学习笔记(单例模式(第二大节39-43作业没做))

2018-03-26 23:05  冒牌权限  阅读(66)  评论(0)    收藏  举报

单例模式

#!/usr/bin/env python
# -*- coding:utf-8 -*-

class danli:

    __j_value = None

    def __init__(self):
        self.username = 'hehe'
        self.pwd = 'jiandan123456'
        self.ip = '192.168.1.1'
        self.prot = '3306'

    @staticmethod
    def j_func():#创建一个静态方法由类访问
        if danli.__j_value:#第一次访问,__j_valre为空,所以不成立,第二次才有值
            return danli.__j_value
        else:
            danli.__j_value = danli()#实例化一个对象赋值给静态字段,后续访问由于__j_valre有值,所以整个过程只实例化一次
            return danli.__j_value

    def func(self):
        pass

obj1 = danli.j_func()#由类来访问静态方法
print(obj1)
obj2 = danli.j_func()
print(obj2)#可以看到和第一次的对象时一样的
obj3 = danli.j_func()
print(obj3)#可以看到和第一次的对象时一样的