NameError:名称“ convert_symbol_to_int”未定义

python django

99 观看

2回复

53 作者的声誉

我有一个错误:NameError: name 'convert_symbol_to_int' is not defined运行此代码时:

class ReadData():
    def __init__(self, sheet_path):
        self.book = xlrd.open_workbook(sheet_path)
        self.sheet = self.book.sheet_by_index(1)
        self.users = []

    def read(self):
        for row_index in range(2, self.sheet.nrows):
            rows = self.sheet.row_values(row_index)
            if rows[1] != '' and rows[2] != '' and rows[4] != '':
                woman = convert_symbol_to_int(row[8])
                man = convert_symbol_to_int(row[9])

   def convert_symbol_to_int(self,arg):
        if arg == '○':
            return 2
        elif arg == '×':
            return 1
        elif arg == '△':
            return 0
        else:
            return -1

x = ReadData('./data/excel1.xlsx')
x.read()

我真的不明白为什么会发生此错误。为什么无法访问convert_symbol_to_int?我该如何解决?

作者: user8563636 的来源 发布者: 2017 年 9 月 15 日

回应 2


1

880 作者的声誉

决定

你应该使用

man = self.convert_symbol_to_int(row[9])
作者: Max 发布者: 2017 年 9 月 15 日

0

6837 作者的声誉

恰如Kalyan Reddy回答的那样,您必须使用调用方法self,该方法是指向类本身的指针。以下示例显示了在类中定义的外部声明的函数和方法之间的区别:

def hello():
    print("hello, world!")


class Greeting(object):
    def __init__(self, world):
        self.world = world

    def hello(self):
        print("hello, {}!".format(self.world))

    def make_greeting(self):
        hello() # this will call the function we created outside the class
        self.hello() # this will call the method defined in the class

的目的self已经在这一问题进行了说明: 什么是自我的目的是什么?

作者: cezar 发布者: 2017 年 9 月 15 日
32x32