class Staff(object):
"""员工类"""
def user_printer(self, info, pr):
"""
使用打印机的方法
:param info:需要打印的信息
:param pr: 打印机对象
:return: None
"""
pr.add_task(info)
class Manager(Staff):
"""经理类"""
pass
class Printer(object):
"""打印机类"""
__instance = None
__list_print_queue = list()
def __new__(cls, *args, **kwargs):
"""将打印机类 设计成单例模式"""
if cls.__instance is None:
cls.__instance = object.__new__(Printer)
return cls.__instance
def add_task(self, info):
"""
添加打印任务到 打印队列中
:param info: 需要打印的信息
:return: None
"""
Printer.__list_print_queue.append(info)
def print_task(self):
"""模拟打印"""
print(Printer.__list_print_queue)
def main():
"""主程序"""
manager1 = Manager()
pr1 = Printer()
manager1.user_printer("hello world", pr1)
worker1 = Staff()
pr2 = Printer()
worker1.user_printer("worker1 use printer", pr2)
worker2 = Staff()
pr3 = Printer()
worker2.user_printer("i'm worker2, i'm use printer", pr3)
pr4 = Printer()
pr4.print_task()
if __name__ == '__main__':
main()