zoukankan      html  css  js  c++  java
  • python 单例模式

    编程中,有许多设计模式,在学习python中,第一次接触到了单例模式.

    单例模式应用场景:

    同一个类中相同的方法和变量,因为需求,需要多次创建.

    多次创建同一个实例,极大的浪费内存.

    静态方法,静态变量.

    注意:下面的代码运行在py27版本中

     1 #!/usr/bin/env python
     2 # -*- coding:utf-8 -*-
     3 from wsgiref.simple_server import make_server
     4 def RunServer(environ,start_response):
     5     start_response(status="200 ok",headers=[('Content-Type','text/html')])
     6     url=environ['PATH_INFO']
     7     return "OldBoy xurui"
     8 if __name__ == '__main__':
     9     httpd = make_server('',8000,RunServer)
    10     print("Serving HTTP on port 8000....")
    11     httpd.serve_forever()
    简单的web服务
     1 #!/usr/bin/env python
     2 # -*- coding:utf-8 -*-
     3 from wsgiref.simple_server import make_server
     4 import random
     5 class connPool:
     6     __instance =None
     7     def __init__(self):
     8         self.ip = '1.1.1.1'
     9         self.port = 3306
    10         self.pwd = "123456"
    11         self.username="root"
    12         self.conList = [1,2,3,4,5,6,7,8,9]
    13     @staticmethod
    14     def getInstance():
    15         if connPool.__instance:
    16             return connPool.__instance
    17         else:
    18             connPool.__instance=connPool()
    19             return connPool.__instance
    20     def getConn(self):
    21         #获取连接
    22         # print(self.conList)
    23         res = random.randrange(1,11)
    24         return res
    25 def index():
    26     # obj = connPool()  ##创建了多个实例
    27     # print(obj)
    28     p = connPool.getInstance() ##创建一个同一个实例/对象
    29     print(p)
    30     return "index11111"
    31 def news():
    32     return "news22222"
    33 def RunServer(environ,start_response):
    34     start_response(status="200 ok",headers=[('Content-Type','text/html')])
    35     url=environ['PATH_INFO']
    36     print(url)
    37     if url.endswith("index"):
    38         ret = index()
    39         return ret
    40     elif url.endswith("news"):
    41         ret = news()
    42         return ret
    43     else:
    44         return "404"
    45     return "OldBoy xurui1"
    46 if __name__ == '__main__':
    47     httpd = make_server('',8000,RunServer)
    48     print("Serving HTTP on port 8000....")
    49     httpd.serve_forever() ##
    单例模式代码
    人生苦短,我用python!
  • 相关阅读:
    linux入门_韩顺平_复习版_用户管理
    linux入门_韩顺平_复习版_开启、重启、用户登陆注销
    python入门_老男孩_列表的增删查改
    git入门_尚硅谷_git简介
    码农要求_python豆瓣_2018校招
    python入门_老男孩_数据类型简介_int/bool/str转换_字符串索引和切片_字符串操作_day3
    LeetCode--链表3-经典问题
    LeetCode--链表2-双指针问题
    LeetCode--链表1-单链表
    LeetCode---二叉树3-总结例题
  • 原文地址:https://www.cnblogs.com/xu-rui/p/6428330.html
Copyright © 2011-2022 走看看