- 将静态变量计数器初始化为0
validate_source_destination()
:验证源和目标。源必须始终是德里,目标可以是孟买、钦奈、浦那或加尔各答。如果两者都有效,则返回true。否则返回falsegenerate_ticket()
:验证源和目标。如果有效,则生成票证ID并将其分配给属性ticket_id
。票证ID应使用源的第一个字母、目标的第一个字母和从01开始的自动生成值(例如:DM01、DP02、...、DK10、DC11),否则将票证标识设置为无。- 注意:执行不区分大小写的字符串比较
用于测试:
- 创建票证类的对象
- 调用票证对象上的
generate_ticket()
方法 - 显示车票ID、乘客姓名、来源、目的地
- 如果出现错误/无效数据,则显示适当的错误消息
class Ticket:
counter=0
def __init__(self,passenger_name,source,destination):
self.__passenger_name=passenger_name
self.__source=source
self.__destination=destination
self.Counter=Ticket.counter
Ticket.counter+=1
def validate_source_destination(self):
if (self.__source=="Delhi" and (self.__destination=="Pune" or self.__destination=="Mumbai" or self.__destination=="Chennai" or self.__destination=="Kolkata")):
return True
else:
return False
def generate_ticket(self ):
if True:
__ticket_id=self.__source[0]+self.__destination[0]+"0"+str(self.Counter)
print( "Ticket id will be:",__ticket_id)
else:
return False
def get_ticket_id(self):
return self.ticket_id
def get_passenger_name(self):
return self.__passenger_name
def get_source(self):
if self.__source=="Delhi":
return self.__source
else:
print("you have written invalid soure option")
return None
def get_destination(self):
if self.__destination=="Pune":
return self.__destination
elif self.__destination=="Mumbai":
return self.__destination
elif self.__destination=="Chennai":
return self.__destination
elif self.__destination=="Kolkata":
return self.__destination
else:
return None
当generate_ticket()
方法给出false条件时,我不想打印ticket_id
,但在我的代码中,在false语句之后,票证ID确实打印输出。
2条答案
按热度按时间6yt4nkrj1#
头等舱机票:计数器=0 definit(自身、乘客姓名、出发地、目的地):本人。__乘客姓名=本人的乘客姓名。__源=源。下层()本人。__目的地=目的地。下层()本人。__车票ID=无车票。计数器+=1
iyr7buue2#
试试这个