stark组件前戏之单例模式


"""
单例模式
    单:一个
    例:实例、对象
    通过利用Python模块导入的特性:在Python中,如果已经导入过的文件再次被重新导入时,Python不会再重新解释一遍,而是选择从内存中直接将原来导入的值拿来使用
    one.py
        class AdminSite(object):
            pass
        site = AdminSite()
    two.py
        import one
        print(one.site)
        import one
        print(one.site)
    提示:
        如果以后存在一个单例模式的对象,可以先在此对象中放入一些值,然后再在其他的文件中导入该对象,通过对象再次将值获取到
"""

util.py

class AdminSite(object):
    pass


site = AdminSite()  # 为AdminSite类创建了一个对象(实例)

app.py

# import util
# print(util.site)  # 
#
# import util
# print(util.site)  # 

"""
在Python中,如果已经导入过的文件再次被重新导入时,Python不会再重新解释一遍,而是选择从内存中直接将原来导入的值拿来使用
"""

# import util
# print(util.site)
# import commons
# # 
# # 


import util
util.site.name = "admin"
import commons

commons.py

# import util
# print(util.site)


import util
print(util.site.name)