Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.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 类型错误:';模块';对象不可调用-apriori_Python_Python 3.x - Fatal编程技术网

Python 类型错误:';模块';对象不可调用-apriori

Python 类型错误:';模块';对象不可调用-apriori,python,python-3.x,Python,Python 3.x,我正在为Randonmized算法编写代码。当我试图用python3 random.py-f T10I4D100K.dat-p0.1-s0.05-c0.05运行此代码时,它导致TypeError:“module”对象不可调用。我应该换哪一部分 回溯(最近一次呼叫最后一次): 文件“random.py”,第48行,在 main() 文件“random.py”,第41行,主 文件到数组() 文件“random.py”,第32行,在文件到数组中 if(决策(参数概率)): 文件“random.py”,

我正在为Randonmized算法编写代码。当我试图用python3 random.py-f T10I4D100K.dat-p0.1-s0.05-c0.05运行此代码时,它导致TypeError:“module”对象不可调用。我应该换哪一部分

回溯(最近一次呼叫最后一次): 文件“random.py”,第48行,在
main()
文件“random.py”,第41行,主
文件到数组()
文件“random.py”,第32行,在文件到数组中
if(决策(参数概率)):
文件“random.py”,第19行,在decision中
返回random.random()
TypeError:“模块”对象不可调用

import argparse
import time
import sys
import random
from efficient_apriori import apriori
parser = argparse.ArgumentParser(description="datasets")
parser.add_argument('-f', '--file', 
default="sample.txt",help="http://fimi.uantwerpen.be/data/")
parser.add_argument('-s', '--min_support', default = 0.5,
                help="minimum support, set to 0.5 by default")
parser.add_argument('-c', '--min_confidence', default = 0.5,
                help="minimum confidence, set to 1 by default")
parser.add_argument('-p', '--probability', default = 1,
                help="Probability for randomlized slice")               
args = parser.parse_args()
#memory_data [Brisket_Number][Item_Number]
memory_data = []
data_list = []
def decision(probability):
    return random.random() < float(probability)
#------------------------------------------File Handling------------------------------------------
def file_to_array():
    i = 1
    data_file = open(args.file, "r")
    print("Reading File into Array...\n")
    #if its comment line
    for line in data_file:

        line = line.rstrip()
        line_row = line.split()

        memory_data.append(line_row)
        if (decision(args.probability)):
            data_list.append(tuple(line_row))
        i += 1
    data_file.close()
    #print("Array:",memory_data,"\n")
    #print("Data_list:",data_list)
    print ("Reading complete ",i, " lines in total.")
def main():
    start_time = time.time()
    file_to_array()
    #Apriori()
    itemsets, rules = apriori(data_list, min_support= float(args.min_support),  
min_confidence=float(args.min_confidence))
    #print(itemsets)
    print(rules) 
    print("--- Total run time: %s seconds ---" % (time.time() - start_time))
if __name__ == "__main__":
    main()
import argparse
导入时间
导入系统
随机输入
从有效的apriori导入apriori
parser=argparse.ArgumentParser(description=“datasets”)
parser.add_参数('-f','-file',
default=“sample.txt”,help=“http://fimi.uantwerpen.be/data/")
add_参数('-s','-min_-support',默认值=0.5,
help=“最小支持,默认设置为0.5”)
parser.add_参数('-c','-min_-confidence',默认值=0.5,
help=“最小置信度,默认设置为1”)
parser.add_参数('-p','-probability',default=1,
help=“随机切片的概率”)
args=parser.parse_args()
#记忆数据[胸脯编号][项目编号]
内存_数据=[]
数据列表=[]
def决策(概率):
返回random.random()<浮点(概率)
#------------------------------------------文件处理------------------------------------------
def文件到数组():
i=1
数据文件=打开(args.file,“r”)
打印(“正在将文件读入数组…\n”)
#如果它的注释行
对于数据_文件中的行:
line=line.rstrip()
行\行=行。拆分()
内存\数据.追加(行\行)
如果(决策(参数概率)):
数据列表。追加(元组(行)
i+=1
数据_文件.close()
#打印(“数组:”,内存\u数据,“\n”)
#打印(“数据列表:”,数据列表)
打印(“阅读完成”,i,“共行”)
def main():
开始时间=time.time()
文件到数组()
#Apriori()
项目集,规则=apriori(数据列表,最小支持=float(args.min支持),
最小置信度=浮动(参数最小置信度))
#打印(项目集)
打印(规则)
打印(“---总运行时间:%s秒----”%(time.time()-开始时间))
如果名称=“\uuuuu main\uuuuuuuu”:
main()

您的模块名为
random.py
。当您将
random
导入模块时,实际上是在导入您自己的模块。它在模块中创建一个全局名称
random
,也称为
random

这行代码失败:

return random.random() < float(probability)
返回random.random()

第一个
random
是您的模块。第二个
random
是由import random语句定义的名称。

您还需要共享错误回溯来帮助您。查看是否可以创建。我刚刚添加了回溯,因此需要将模块名称random.py更改为其他名称。对吧?那会解决问题的。