今天在寫代碼的時候出現了以下兩個錯誤:
TypeError: 'module' object is not callable
AttributeError: excelChange instance has no attribute 'xlBook'
上網一查,發現第一個錯誤是由於python中有兩種不同的引用方式 import xxx 和 from xxx import *,前者在代碼中引用時需要加上模塊名和具體的方法或屬性,具體方法如下:
import catchForm self.xls = catchForm.catchForm()
而from xxx import *則可以直接引用:
from catchForm import * self.xls = catchForm()
解決完第一個錯誤后,馬上又遇到了第二個錯誤,代碼如下:
class excelChange:
"""一個win32com的封裝類,將其所有方法封裝在內,
統一調用
"""
def _init_(self,filename = None):#傳入文件名參數,如果有的話,沒有就把None賦值給filename,自個再新建一個
self.xlApp = Dispatch('Excel.Application')
if filename:
self.filename = filename
self.xlBook = self.xlApp.Workbooks.Open(filename)
else:
self.xlBook = self.xlApp.Workbooks.Add()
self.filename = ''
上網一查發現:
_init_寫錯了,正確的寫法應該是__init__,有兩個下划線
