① 在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()]