① 在python中 关联两个文件的错误信息 返回实际的值的问题
# tips 在命名中,1和l太像,容易混淆 我命名中去除了1
#另外 你那句int(x)==False 不知道你想表达什么意思 我修改为temp=int(x)
#另外 对于Ha的raiser函数,不知道你想表达啥意思,如果输入了字符串‘123’你是直接raise错误呢
#还是你想表达如果输入的是数字,而不是字符串,我暂且认为你是当输入特定的‘123’字符串
#haa.py
classHaError(Exception):
pass
classHa:
def__init__(self,x):
self.raiser(x)
defraiser(self,x):
ifx=='123':
raiseHaError('shouldbestr')
else:
temp=int(x)
#hbb.py
fromhaaimportHaError
fromhaaimportHa
deftext(x):
try:
Ha(x)
exceptValueError:
return'Value'
exceptHaError:
return'String'
else:
return'OK'
#然后是运行结果
Python3.4.0b2(v3.4.0b2:ba32913eb13e,Jan52014,16:13:26)[MSCv.160064bit(AMD64)]onwin32
Type"right","credits"or"license()"formoreinformation.
>>>================================RESTART================================
>>>
>>>text('e')
'Value'
>>>text('123')
'String'
>>>text('456')
'OK'
>>>text(456)
'OK'
>>>
#最后,大胆的猜测,楼主是否想表达,输入的东西比如是只包含数字的字符串,其他输入数字
#或者别的都不行呢 如果是这样 我觉得不需要这么麻烦,直接用 type(x)函数 和 isdigit() 判断
# 只用一个函数就ok了 如下:
#python3.4
deftext(x):
temp={0:'Value',1:'Str',2:'OK',3:'None'}
defcheckType():
iftype(x)in(float,int):
return0
eliftype(x)==str:
ifx.isdigit():
return2
else:
return1
else:
return3
returntemp[checkType()]