【发布时间】:2020-09-10 20:04:53
【问题描述】:
对 Python 来说有点新,但这是一个关于编写函数而不重复自己的问题。
使用openpyxl,我创建了一个文档类和一个工作簿 (wb),里面有 3 张纸:
self.sheet1 = self.wb['sheet1']
self.sheet2 = self.wb['sheet2']
self.sheet3 = self.wb['sheet3']
我在这个类中还有一个函数,它可以通过 sheet3 的行查找特定文本。
def find_text_row_number(self, text):
text_row_number = set([])
for row in self.sheet3.iter_rows(self.sheet3.min_row,self.sheet3.max_row):
for cell in row:
if cell.value == text:
text_row_number.add(cell.row)
return sorted(text_row_number)
我的问题是:我怎样才能在程序的其他地方调用这个函数并让它搜索sheet2,而不是sheet3? 尝试查看装饰器并使用默认值( sheet=self.sheet3),但这会引发错误,因为尚未定义 self。
是否有更有效的方法来编写这个特定的函数?或者我缺少的 Python 的某些方面可以在这里提供帮助?
【问题讨论】:
标签: python function openpyxl dry