python编写主函数的小问题

老是出现 a=create1(n)
NameError: name 'create1' is not defined
到底是怎么回事


import time
class LinkNode:  # 单链表结点类
    def __init__(self, data=None):  # 构造函数

        self.size = None
        self.data = data
        self.next = None
        self.head = LinkNode()
        self.head.next = None

    def create1(self, a):  # 建立顺序表
        a = []
        for i in range(0, len(a)):
            self.data[self.size] = a[i]

    def Append(self, item):  # 插入元素item在表尾
        self.data.append(item)

    def create2(self, n):  # 尾插法建立单链表
        h = LinkNode()
        t = self.head
        for i in range(0, len(n)):
            s = LinkNode(n[i])
            t.next = s
            t = s
        t.next = None

    def reverse1(a):  # 求顺序表逆置的时间
        t1 = time.time()  # 获取开始时间
        i, j = 0, len(a) - 1
        while i < j:
            a[i], a[j] = a[j], a[i]
            i, j = i + 1, j - 1
        t2 = time.time()  # 获取结束时间
        return t2 - t1

    def reverse2(self, h):  # 求单链表表逆置的时间
        t1 = time.time()  # 获取开始时间
        if h is None or h.next is None:
            return
        c = h.next.next
        h.next.next = None
        while c is not None:
            p = c.next
            c.next = h.next
            h.next = c
            c = p
        t2 = time.time()  # 获取结束时间
        return t2 - t1

from LinkNode import LinkNode
if __name__ == '__main__':
    n=10000000                                             #主程序
    a=create1(n)
    h=create2(n)
    print()
    print("  求解结果")
    print("  顺序表逆置时间: %.2f" %(reverse1(a)))
    print("  单链表逆置时间: %.2f" %(reverse2(h)))
print()


参考GPT和自己的思路:在主程序中,你调用了函数create1create2,但是这两个函数并没有在主程序所在的文件中定义,因此在运行程序时会出现NameError: name 'create1' is not defined的错误。你需要将create1create2函数的定义代码放在与主程序同一个文件中,或者在主程序中导入包含create1create2函数定义的模块。另外,create1函数似乎并没有按照预期的功能来实现,可能需要检查是否有问题。

你的代码错误的地方挺多的,要解决当前这个问题,你要先实例化一个LinkNode类的对象,然后用对象调用类方法create1
如:

    linknode = LinkNode(n)
    a = linknode.create1()
    h = linknode.create2()

感觉你的代码是从哪里参考的,你再检查检查把。