继续获取Class方法的“无”值,我不明白为什么?

时间:2019-09-17 11:16:30

标签: python class oop

tl; dr我必须去整理一堆xls工作簿,这些工作簿的格式有很多差异。我正在尝试使其尽可能地灵活。它正在读取我的文件,当我打印该方法时,我得到一个值,指示某物已存储在内存中(不幸的是,无值)。

我设置了一个基本类,以便在电子表格中运行,具体取决于电子表格采用哪种格式(几乎可以选择3种格式)。我不能简单地将它们更改为CSV,因为我需要进入工作表。

class parse_class:

    def __init__(self, wb):
        self.wb = wb
        self.method1 = None
        self.method2 = None
        #and so on

    def method1(self):
        try:
            method_var = self.wb.sheet_by_name('sheet 1 name')
            self.method1 = method_var
        except:
            pass

    #and so on for the other methods in the class

我打算将这些方法传递给类外的各种函数,以提取所需的值。不幸的是,使用NoneType值时,我无法提取的内容太多。我的课程设置有问题吗?

(就为什么我使用try / excepts而言,工作表可能存在也可能不存在于给定的工作簿中,但是使用相同的命名约定(如果存在)

1 个答案:

答案 0 :(得分:1)

您可能想将默认值设置为None,而不要覆盖它们。

class parse_class:

    def __init__(self, wb):
        self.wb = wb

    def method1(self):
        try:
            method_var = self.wb.sheet_by_name('sheet 1 name')
            self.method1 = method_var
        except:
            pass

否则,无论您传递给类的内容如何,​​它仍将初始化为None