和 Java的好像有蠻多不同,讓我感覺有點怪,可以確定的是上面的,不能實現單例模式,後面補上補:查了一下,發現好像不對,感覺有問題。找到的python2.*的單例不是這樣的 python2.*類型改,但是會報錯,這個錯誤我就不分析了,複雜 可能用最上面的就好了,我找時間去看一下其他的教程是怎麼樣的。 ...
class Person: __v = None @classmethod def get_instance(cls): if cls.__v: return cls.__v else: cls.__v = Person() return cls.__v #不使用類()創建對象 obj = Person.get_instance() print(obj)
和 Java的好像有蠻多不同,讓我感覺有點怪,可以確定的是上面的,不能實現單例模式,後面補上
補:
查了一下,發現好像不對,感覺有問題。找到的python2.*的單例不是這樣的
python2.*類型改,但是會報錯,這個錯誤我就不分析了,複雜
class Singleton(object): def __new__(cls,*args,**kwargs): if not hasattr(cls,'_inst'): cls._inst = super(Singleton,cls).__new__(cls,*args,**kwargs) ###### TypeError: object() takes no parameters return cls._inst if __name__ == '__main__': class A(Singleton): def __init__(self,s): self.s = s a = A('apple') b = A('banana') print(id(a), a.s) print(id(b), b.s)
可能用最上面的就好了,我找時間去看一下其他的教程是怎麼樣的。然後再補上
作業: 選課系統 (我後面補/捂臉)
角色:學校、學員、課程、講師
要求:
1. 創建北京、上海 2 所學校
2. 創建linux , python , go 3個課程 , linux\py 在北京開, go 在上海開
3. 課程包含,周期,價格,通過學校創建課程
4. 通過學校創建班級,班級關聯課程、講師
5. 創建學員時,選擇學校,關聯班級
5. 創建講師角色時要關聯學校,
6. 提供兩個角色介面
6.1 學員視圖,可以註冊,交學費,選擇班級,
6.2 講師視圖,講師可管理自己的班級,上課時選擇班級,查看班級學員列表,修改所管理的學員的成績
6.3 管理視圖,創建講師,創建班級,創建課程
7. 上面的操作產生的數據都通過pickle序列化保存到文件里
源文檔 <http://www.cnblogs.com/alex3714/articles/5188179.html> 源文檔有一些例子,可以看一下