031單例+作業,031作業
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._instif __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> 來源文件有一些例子,可以看一下