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而言,工作表可能存在也可能不存在于给定的工作簿中,但是使用相同的命名约定(如果存在)
答案 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
。