我导入自己的.py文件时得到TypeError

时间:2016-10-09 00:52:19

标签: python module

我正在做一个排序程序。我有两个名为bubble(冒泡排序程序)和cal_time(计算时间)的文件,它们位于同一个目录中。

问题是,泡沫工作是否流利。但是,当我将气泡导入我的cal_time文件和回调冒泡排序时,解释器会向我显示错误消息,显然我的代码中没有built_in函数或方法:

Traceback (most recent call last):    
  File "F:/alogrithm/wzysort/cal_time.py", line 13, in <module>  
      bubble.bubble_sort(generate_random_list())  
  File "F:\alogrithm\wzysort\bubble.py", line 4, in bubble_sort  
       if a[indx] > a[indx+1]:  
    TypeError: unorderable types: builtin_function_or_method() > builtin_function_or_method()

cal_time.py:

import time
from wzysort import bubble
import random


def generate_random_list():
    result = []
    for i in range(10):
        result.append(random.random)
    return result

time_start = time.time()
bubble.bubble_sort(generate_random_list())
time_end = time.time()
print(time_end - time_start)

bubble.py:

def bubble_sort(a):
for i in range(len(a)-1):
    for indx in range(len(a[:-i-1])):
        if a[indx] > a[indx+1]:
            a[indx], a[indx + 1] = a[indx + 1], a[indx]

2 个答案:

答案 0 :(得分:2)

你的问题在于:

result.append(random.random)

您正在将方法random.random附加到列表中 - 其类型为builtin_function_or_method(从而导致您收到的错误 - 您将如何比较函数?)。

相反,您想要调用方法:

result.append(random.random())

答案 1 :(得分:0)

generate_random_list()函数中,您正在执行random.random。由于它是一个函数,您应该将其写为random.random()。因此,generate_random_list()函数的代码应为:

def generate_random_list():
    result = []
    for i in range(10):
        result.append(random.random())
    return result