Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对象在python代码中没有属性问题_Python_Python 3.x_Function_Class - Fatal编程技术网

对象在python代码中没有属性问题

对象在python代码中没有属性问题,python,python-3.x,function,class,Python,Python 3.x,Function,Class,我正在做一个项目,用Python3创建一家航空公司的数据库(简单) 它包含三个不同的代码:飞机、航班和航空公司。所有三个代码一起工作,飞机和飞行都正常工作。问题出在一号航空公司 该代码使用测试代码执行。该测试代码包含来自飞机和航班的所有信息。这些信息保存在两个不同的类中,稍后由航空公司程序调用 当我试着打电话给CAirline班的Airline.fleet(以及运营和日程安排)时,问题就来了 程序返回: AttributeError: 'list' object has no attribute

我正在做一个项目,用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
代码一直运行到:Airline.add_飞机(西卡,AC1)

问题就在这里

a=[Airline() for i in range(10)]
j=0
while j<len(a.fleet):
a=[Airline()代表范围内的i(10)]
j=0

而j
Airline()
返回类,而不是实例。他不也需要调用
airline()
来获得一个实例吗?@Barmar Oops,你说得对,完全错过了。这段代码很奇怪,我想知道为什么OP会这样做,为什么你要在函数中定义类?你是不是想用
return CAirline()
结束
Airline()
,这样它会返回一个实例而不是类本身?你用
a给
a
分配一个列表=[…
add_aircraft
中。为什么您希望
a
成为
航空公司
?如果您想编写测试,您还可以查找测试框架(例如
unittest
pytest
)。
a=[Airline() for i in range(10)]
j=0
while j<len(a.fleet):