我正在做一个项目,用Python3创建一家航空公司的数据库(简单)
它包含三个不同的代码:飞机、航班和航空公司。所有三个代码一起工作,飞机和飞行都正常工作。问题出在一号航空公司
该代码使用测试代码执行。该测试代码包含来自飞机和航班的所有信息。这些信息保存在两个不同的类中,稍后由航空公司程序调用
当我试着打电话给CAirline班的Airline.fleet(以及运营和日程安排)时,问题就来了
程序返回:
AttributeError: 'list' object has no attribute 'fleet'
航空公司代码为:
import Aircraft
import Flight
def Airline():
class CAirline:
def __init__(self):
self.name = ""
self.fleet = ""
self.operations = ""
self.schedule = ""
return CAirline
def add_aircraft(a, ac):
a=[Airline() for i in range(10)]
j=0
while j<len(a.fleet):
if a[j].fleet[0]==ac[0]:
return False
else:
a.fleet.append(ac)
return True
j+=1
测试代码为:
import Aircraft
import Flight
import Airline
def createXicaAirline ():
AC1 = Aircraft.Aircraft()
AC1.callsign = "EC234"
AC1.type = "A320"
AC1.seats = 280
AC2 = Aircraft.Aircraft()
AC2.callsign = "EC504"
AC2.type = "A321"
AC2.seats = 310
FL1 = Flight.Flight()
FL1.dep = "Barcelona"
FL1.arr = "Budapest"
FL1.time_dep = 8*60
FL1.time_arr = 11*60
FL1.passengers = 54
FL2 = Flight.Flight()
FL2.dep = "Barcelona"
FL2.arr = "Istambul"
FL2.time_dep = 9*60
FL2.time_arr = 12.5*60
FL2.passengers = 154
FL3 = Flight.Flight()
FL3.dep = "Istambul"
FL3.arr = "Budapest"
FL3.time_dep = 17*60
FL3.time_arr = 19.25*60
FL3.passengers = 140
FL4 = Flight.Flight()
FL4.dep = "Budapest"
FL4.arr = "Barcelona"
FL4.time_dep = 20*60
FL4.time_arr = 23*60
FL4.passengers = 97
Xica = Airline.Airline()
Xica.name = "Xica Airline"
Airline.add_aircraft(Xica, AC1)
Airline.add_aircraft(Xica, AC2)
Airline.add_operation(Xica, FL1)
Airline.add_operation(Xica, FL2)
Airline.add_operation(Xica, FL3)
Airline.add_operation(Xica, FL4)
return Xica
print ("Phase1 test program")
A = createXicaAirline()
Airline.show_airline(A)
print ("Phase1 test program end")
代码可以完美运行,直到:Airline.add_飞机(西卡,AC1)
问题就在这里
您可能意外地将顶行留在那里,因为它覆盖了您传递给函数的内容
作为提示,您可以通过使用更具描述性的变量名来帮助避免这些问题。因此,您可以将其称为
airlines
或airline_list
,而不是a
相关问题 更多 >
编程相关推荐