未解决的参考'工作表'错误发生。 我试过的代码如下:
class User():
def __init__(self, sheet_path):
self.file = glob.glob(sheet_path)
self.construction_area ={}
def read(self):
for x in self.file:
if "$" not in x:
book = xlrd.open_workbook(x)
sheet = book.sheet_by_index(0)
cells = [('user_id', 0, 9),
('name', 4, 0),
('age', 4, 1),]
・
・
def save(self):
・
・
for row_index in range(7, sheet.nrows):
row = sheet.row_values(row_index)
・
・
x = User('./data/*.xlsx')
x.read()
x.save()
在sheet
保存方法中,错误发生。我在工作表前面添加了self
,但是AttributeError:'User'对象没有出现属性'sheet'错误。
为什么我不能访问'表'?实例还不够吗?我该如何解决这个问题?
答案 0 :(得分:0)
在python中,要访问实例成员,必须使用实例内部的经典self
关键字来指定实例。
您的sheet
变量在read
方法中创建本地,但仅在本地,它永远不会附加到User
的当前实例。
如果你需要保存这些表格(看起来这就是你想要的那样;)),你必须在任何地方使用self.sheet
(而且,在__init__
方法中声明它)
class User():
def __init__(self, sheet_path):
self.file = glob.glob(sheet_path)
self.construction_area ={}
self.sheet = None
def read(self):
for x in self.file:
if "$" not in x:
book = xlrd.open_workbook(x)
self.sheet = book.sheet_by_index(0)
cells = [('user_id', 0, 9),
('name', 4, 0),
('age', 4, 1),]
def save(self):
for row_index in range(7, sheet.nrows):
row = self.sheet.row_values(row_index)