欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

031单例+作业

程序员文章站 2022-03-26 22:47:58
和 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.*的单例不是这样的
031单例+作业

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>       源文档有一些例子,可以看一下