#coding=utf8
import os
import sys
"""@author: xuwentao
date:
2020.06
.30function: singleton model
language:python3
""""""
單例模式實現1: 使用類方法和類屬性來實現
"""class singleton
(object)
: def __init__
(self,
*args,
**kwargs)
: pass
@classmethod
def singleton
(cls)
: # 把例項封裝成私有屬性
if not hasattr
(singleton,
'_instance'):
singleton._instance =
cls(
) # 這裡也可以寫singleton()
return singleton._instance
"""單例模式實現2:使用python內部建立物件的機制
知識點:python建立物件的過程,在python例項化物件的時候,先會執行__new__
(cls)的方法,為建立的物件開闢
一段新的記憶體,然後呼叫__init__來為這個新的物件執行初始化操作
所以在__new__時候需要保證每次開闢的物件都一樣就可以
"""class singleton1
(object)
: def __init__
(self)
: pass
# 使用__new__保證每次返回的物件都一樣
def __new__
(cls,
*args,
**kwargs)
:if not hasattr
(cls,
'_instance'):
singleton1._instance =
super()
.__new__
(cls)
return singleton1._instance
if __name__ ==
'__main__'
: a = singleton.
singleton()
b = singleton.
singleton()
""" <__main__.singleton object at 0x7f690c029390
>
140089149789072
<__main__.singleton object at 0x7f690c029390
>
140089149789072
是不是實現類單例1
""" print
(a)print(id
(a))
print
(b)print(id
(b))
c =singleton1()
d =singleton1()
""" <__main__.singleton1 object at 0x7f40809a7908
>
<__main__.singleton1 object at 0x7f40809a7908
>
139915012241672
139915012241672
是不是實現了單例2
""" print
(c)print
(d)print(id
(c))
print(id
(d))
棧的兩種實現方式 python實現
棧是一種後進先出 lifo 的資料結構,在設計演算法時有十分廣泛的應用。對棧的操作是通過將元素壓入棧 放在棧頂 或是將棧頂元素彈出,都是對棧頂元素的操作。若要實現乙個高效的棧,則要考慮到這兩種操作的時間複雜度。有兩種資料結構可以作為實現棧的基礎 順序表和煉表。在順序表尾端插入或刪除元素的時間複雜度與...
兩種方式實現checkBox readonly功能
今天在做開發的時候遇到了這樣乙個問題 有乙個checkbox選項是不能被改變的。但是checkbox又是沒有readonly屬性的,這個時候我就想到了另外乙個屬性disabled,但是disabled的物件是不能提交到後台的,所以這個又被排除掉了。想了想,只能新增事件來搞定了。於是在checkbox...
TabHost兩種實現方式
第一種 繼承tabactivity,從tabactivity中用gettabhost 方法獲取tabhost。只要定義具體tab內容布局就行了.package com.example.testtabhost import android.os.bundle import android.view.l...