单例 仅一个司机售票

发布时间 2023-07-17 17:45:59作者: 胖豆芽
# 单例  司机只有一个
class Driver:
    _self=None
    _name = "Driver Jack"  # 司机的姓名
    _num = 0  # 司机的业绩 初始值是0



    def __new__(cls, *args, **kwargs):
        if cls._self is None:
            cls._self=super().__new__(cls)
        return cls._self
    # 定义 动作 卖票  司机将一张票卖给乘客
    def sell(self,name):

        print(f"司机{self._name}将一张票卖给乘客{name}")
        # 卖票后 业绩加1
        self._num+= 1
    # 定义 动作打印业绩
    def getnum(self):
        yeji=self._num
        print(f"司机的业绩是{yeji}")
# 定义乘客
class Passenger:
    # 乘客的属性
    def __init__(self,name):# 乘客的属性是姓名
        self._name= name
    # 乘客的动作
    def buy(self):# 乘客从司机那里买票
        bug_tik=Driver()
        bug_tik.sell(self._name)# 调用司机的售票动作  传入乘客的姓名
        #打印业绩
        bug_tik.getnum()
# 调用定义的类 获取当前司机的业绩
Passenger("A").buy()
Passenger("B").buy()
Passenger("C").buy()