我有两个函数可以打印到excel文件中。只有输入是文件名。这是代码:
#excelpy
import excelpy
#Tinker
from Tkinter import *
from tkSimpleDialog import *
from tkFileDialog import *
功能模式1
def Mode1(full_name):
print full_name
print type(full_name)
testwbook = excelpy.workbook(full_name)
testwbook.show()
testwbook.set_cell((1,1),'TEST1', fontColor='red')
testwbook.set_range(2,1,['Number','Name'])
m1 = testwbook.save(full_name)
testwbook.close()
return m1
功能模式2
def Mode2(full_name):
print full_name
print type(full_name)
testwbook = excelpy.workbook(full_name)
testwbook.show()
testwbook.set_cell((1,1),'TEST2', fontColor='red')
testwbook.set_range(2,1,['Number','Name'])
m2 = testwbook.save(full_name)
testwbook.close()
return m2
主要
root = Tk()
d = str(asksaveasfilename(parent=root,filetypes=[('Excel','*.xls')],title="Save report as..."))
d = d + '.xls'
d = d.replace('/','\\')
root.destroy()
Mode1(d)
Mode2(d)
偶尔我会收到以下错误:
Traceback (most recent call last):
File "T:\TEST\testpy.py", line 2035, in <module>
Mode2(d)
File ""T:\TEST\testpy.py"", line 1381, in Mode2
print type(full_name)
TypeError: 'str' object is not callable
知道为什么会这样吗?我该如何预防?
答案 0 :(得分:3)
您收到错误的行中唯一的函数调用是对内置函数type()
的调用,因此您的错误消息的唯一解释是您覆盖了内置名称{{1}通过指向字符串对象的全局名称type
。尝试添加
type
前
print type
答案 1 :(得分:1)
看起来你正在将一个名为type
的(全局)变量设置为字符串,从而覆盖内置的type
函数。
尝试搜索代码type =
,看看会出现什么。
可以理解的是,当您尝试调用type
时,Python会抛出该异常(字符串不能被“调用”)。