validate_source_destination()
:验证源和目标。来源必须始终是德里,目的地必须是孟买,钦奈,浦那或加尔各答。如果两者均有效,则返回true。否则返回假generate_ticket()
:验证源和目标。如果有效,请生成票证ID并将其分配给属性ticket_id
。票证ID的生成应带有来源的首字母,然后是目的地的首字母,以及从01开始的自动生成的值(例如:DM01,DP02,..,DK10,DC11)。否则,将ticket_id设置为“无”。用于测试:
generate_ticket()
方法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()
方法给出错误条件时,我不想打印ticket_id
,但是在我的代码中,在false语句之后,票证ID会打印输出。
答案 0 :(得分:0)
类机票: 计数器= 0 def init (自身,乘客名称,来源,目的地): 自我.__ passenger_name =乘客名称 self .__ source = source.lower() self .__ destination = destination.lower() self .__ ticket_id =无 Ticket.counter + = 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
答案 1 :(得分:-1)
尝试一下:
class Ticket:
def __init__(self, passenger_name, source, destination):
self.counter = 0
self.__passenger_name = passenger_name
self.__source = source
self.__destination = destination
self.Counter = self.counter
self.counter += 1
def validate_source_destination(self):
all_destinations = ["Pune", "Mumbai", "Chennai", "Kolkata"]
if self.__source == "Delhi" and self.__destination in all_destinations:
return True
else:
return False
def generate_ticket(self):
if self.validate_source_destination() == True:
self.ticket_id=self.__source[0]+self.__destination[0]+"0"+str(self.Counter)
print("Ticket id will be: " + self.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):
all_destinations = ["Pune", "Mumbai", "Chennai", "Kolkata"]
if self.__destination in all_destinations:
return self.__destination
else:
return None