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 名称错误:全局名称';操作员';没有定义_Python_Python 3.x_Error Handling - Fatal编程技术网

Python 名称错误:全局名称';操作员';没有定义

Python 名称错误:全局名称';操作员';没有定义,python,python-3.x,error-handling,Python,Python 3.x,Error Handling,错误: import KNN def c(i,d,l,k): dss=d.shape[0] dm=tile(i,(dss,1))-d sqm=dm**2 sqd=sqm.sum(axis=1) dist=sqd**0.5 sDI=dist.argsort() clc={} for i in range(k): vl=l[sDI[i]] clc[vl]=clc.get(vl,0)+1

错误:

import KNN
def c(i,d,l,k):
    dss=d.shape[0]
    dm=tile(i,(dss,1))-d
    sqm=dm**2
    sqd=sqm.sum(axis=1)
    dist=sqd**0.5
    sDI=dist.argsort()
    clc={}
    for i in range(k):
        vl=l[sDI[i]]
        clc[vl]=clc.get(vl,0)+1     
    sCC=sorted(clc.items(),key=operator.itemgetter(1),reverse=True)
    return sCC[0][0]

c([0,0],g,l,3)

为什么会出现上述错误?该程序在Python3.3.2上运行。这段代码是一个在Python中运行的简单k分类算法。

您需要
将运算符导入本地名称空间<代码>导入KNN
也不会导入它导入的子模块

通常,您需要明确说明所使用的任何和所有模块和对象,但
内置项除外

与其他一些语言不同,没有隐式导入

有关导入的高级提示/社论:
您可能想使用
KNN.operator
。它在那里可用,因为它是由
KNN
导入的。然而,这几乎总是一个令人遗憾的决定,因为它混淆了画面:这是一个特殊的模块吗?如果是,它的接口是什么?保存可爱,要明确。

如果你
导入KNN
你也应该
导入操作符
导入KNN
确实导入
操作符
并将其作为
KNN.操作符
使用,但它不能作为
操作符
使用。这意味着您可以编写
KNN.operator.itemgetter
,如果您真的愿意的话。但那将是愚蠢的。如果您想使用
操作符
,这与其他模块也想使用它没有关系;只需导入它。@abarnert-没错,它确实“暴露了”-但不是Pavan期望的方式。是的,我认为你解释得足够好,可以回答OP的问题,而且大多数人会带着类似的问题来搜索;我只是觉得这个评论对那些知道多一点,但还不够多的人可能有用。
Traceback (most recent call last):
  File "<pyshell#32>", line 1, in <module>
    c([0,0],g,l,3)
  File "<pyshell#31>", line 12, in c
    sCC=sorted(clc.items(),key=operator.itemgetter(1),reverse=True)
NameError: global name 'operator' is not defined
from numpy import *
import operator

def createDataSet():
    group = array([[1.0,1.1],[1.0,1.0],[0,0],[0,0.1]])
    labels = ['A','A','B','B']
    return group, labels