Python 3.x 根据下面给出的类图,编写一个Python程序来生成在线公交车预订的车票 将静态变量计数器初始化为0 validate\u source\u destination():验证源和目标。来源必须始终是德里,目的地可以是孟买、钦奈、浦那或加尔各答。如果两者都有效,则返回true。否则返回false generate_ticket():验证源和目标。如果有效,则生成票证id并将其分配给属性ticket\u id。生成票证id时,源的第一个字母后跟目的地的第一个字母,自动生成的值从01开始(例如:DM01、DP02、…、DK10、DC11)。否则,将票证id设置为无 注意:执行不区分大小写的字符串比较

Python 3.x 根据下面给出的类图,编写一个Python程序来生成在线公交车预订的车票 将静态变量计数器初始化为0 validate\u source\u destination():验证源和目标。来源必须始终是德里,目的地可以是孟买、钦奈、浦那或加尔各答。如果两者都有效,则返回true。否则返回false generate_ticket():验证源和目标。如果有效,则生成票证id并将其分配给属性ticket\u id。生成票证id时,源的第一个字母后跟目的地的第一个字母,自动生成的值从01开始(例如:DM01、DP02、…、DK10、DC11)。否则,将票证id设置为无 注意:执行不区分大小写的字符串比较,python-3.x,Python 3.x,对于测试: 创建票证类的对象 在ticket对象上调用generate\u ticket()方法 显示车票id、乘客姓名、来源、目的地 如果出现错误/无效数据,则显示相应的错误消息 舱单: 计数器=0 定义初始(自身、乘客姓名、来源、目的地): 自身。\乘客\姓名=乘客\姓名 self.\uu source=源 self.\uu destination=目的地 self.Counter=Ticket.Counter 售票处+=1 def验证源目的地(自身): 如果(self.\uu sour

对于测试:

  • 创建票证类的对象
  • 在ticket对象上调用
    generate\u ticket()
    方法
  • 显示车票id、乘客姓名、来源、目的地
  • 如果出现错误/无效数据,则显示相应的错误消息
舱单:
计数器=0
定义初始(自身、乘客姓名、来源、目的地):
自身。\乘客\姓名=乘客\姓名
self.\uu source=源
self.\uu destination=目的地
self.Counter=Ticket.Counter
售票处+=1
def验证源目的地(自身):
如果(self.\uu source==“德里”和(self.\uu destination==“普纳”或self.\uu destination==“孟买”或self.\uu destination==“钦奈”或self.\uu destination==“加尔各答”):
返回真值
其他:
返回错误
def生成_票证(自我):
如果为真:
__票证id=self.\u源[0]+self.\u目的地[0]+“0”+str(self.Counter)
打印(“票证id将为:,\u票证\u id)
其他:
返回错误
def get_ticket_id(自我):
返回self.ticket\u id
def get_乘客姓名(自我):
返回自我。\u乘客\u姓名
def get_源(自身):
如果self.\uu source==“德里”:
返回自我源
其他:
打印(“您已写入无效的资源选项”)
一无所获
def get_目的地(自身):
如果self.\uu destination==“Pune”:
返回自我目的地
elif self.uu destination==“孟买”:
返回自我目的地
elif self.\uu destination==“钦奈”:
返回自我目的地
elif self.\uu目的地==“加尔各答”:
返回自我目的地
其他:
一无所获
generate\u ticket()
方法将给出false条件时,我不想打印
ticket\u id
,但在false语句之后的代码中,ticket id确实会打印输出。

尝试以下方法:

舱单:
定义初始(自身、乘客姓名、来源、目的地):
self.counter=0
自身。\乘客\姓名=乘客\姓名
self.\uu source=源
self.\uu destination=目的地
self.Counter=self.Counter
self.counter+=1
def验证源目的地(自身):
所有目的地=[“浦那”、“孟买”、“钦奈”、“加尔各答”]
如果self.\u source==“德里”和self.\u目的地在所有目的地中:
返回真值
其他:
返回错误
def生成_票证(自我):
如果self.validate_source_destination()==True:
self.ticket\u id=self.\u源[0]+self.\u目的地[0]+“0”+str(self.Counter)
打印(“票证id将为:“+self.Ticket\u id”)
其他:
返回错误
def get_ticket_id(自我):
返回self.ticket\u id
def get_乘客姓名(自我):
返回自我。\u乘客\u姓名
def get_源(自身):
如果self.\uu source==“德里”:
返回自我源
其他:
打印(“您已写入无效的资源选项”)
一无所获
def get_目的地(自身):
所有目的地=[“浦那”、“孟买”、“钦奈”、“加尔各答”]
如果在所有目的地中都有self.\u目的地:
返回自我目的地
其他:
一无所获
客票: 计数器=0 definit(自身、乘客姓名、来源、目的地): 自身。\乘客\姓名=乘客\姓名 self.\uuu source=source.lower() self.\uu destination=destination.lower() self.\u票证\u id=无 售票处+=1

def get_passenger_name(self):
    return self.__passenger_name
def get_source(self):
    return self.__source
def get_destination(self):
    return self.__destination
def get_ticket_id(self):
    return self.__ticket_id

def validate_source_destination(self):
    if self.__source== "delhi" and (self.__destination=="mumbai" or self.__destination=="chennai" or self.__destination=="pune" or self.__destination=="kolkata"):
        return True
    else:
        return False

def generate_ticket(self):
    if self.validate_source_destination() == True:
        srcchar=self.__source[0].upper()
        destchar=self.__destination[0].upper()
        if(Ticket.counter<10):
            self.__ticket_id=srcchar+destchar+"0"+str(Ticket.counter)
        else:
            self.__ticket_id=srcchar+destchar+str(Ticket.counter)
    else:
        self.__ticket_id=None
    return self.__ticket_id
def获取乘客姓名(自我):
返回自我。\u乘客\u姓名
def get_源(自身):
返回自我源
def get_目的地(自身):
返回自我目的地
def get_ticket_id(自我):
返回自我。\u车票\u id
def验证源目的地(自身):
如果self.\uu source==“德里”和(self.\uu destination==“孟买”或self.\uu destination==“钦奈”或self.\uu destination==“普纳”或self.\uu destination==“加尔各答”):
返回真值
其他:
返回错误
def生成_票证(自我):
如果self.validate_source_destination()==True:
srcchar=self.\uuu源[0]。上限()
destchar=self.\u目的地[0]。上限()

if(Ticket.counter)但是您编写了
if True:
,因此条件始终是….
True
…将
if True:
更改为
if self.validate\u destination():
您更改了
计数器的含义
。所有票证都将具有相同的ID
XX00
如何使用该类?将声明票证类实例的主函数发送给我为什么?这无关紧要。重点是
计数器
是一个静态类变量,因此每个
票证
实例created将获得一个唯一的ID。您将
计数器
放在
\uuuu init\uuuu
中,因此现在所有票据都有
self.counter=0
,用于生成票据。。。