class 型判定でエラー(Exception):
def __init__(self, 理想, 現実): super(Exception, self).__init__(str(理想)+'型がよかったのに'+str(現実)+'型が渡されました')
class 型が:
def __init__(self, 型): self.型 = 型
def か判定(self, インスタンス):
if isinstance(インスタンス, self.型): return インスタンス
else: raise 型判定でエラー(self.型.__name__, type(インスタンス).__name__)
を書いて、
foo = 型が(hoge).か判定(var)
と書くと、
var
がhoge
型か調べてくれる。
var
がhoge
型なら何もしないが、
hoge
型でなければ例外を投げる。
class 型判定でエラー(Exception):
def __init__(self, 理想, 現実): super(Exception, self).__init__(str(理想)+'型がよかったのに'+str(現実)+'型が渡されました')
class 型が:
def __init__(self, 型): self.型 = 型
def か判定(self, インスタンス):
if isinstance(インスタンス, self.型): return インスタンス
else: raise 型判定でエラー(self.型.__name__, type(インスタンス).__name__)
class 犬:
pass
class 猫:
pass
def 首輪をはめてお外へGO(ワンちゃん):
型が(犬).か判定(ワンちゃん)
print('散歩だわんっ!')
print("1匹目"); 首輪をはめてお外へGO(犬())
print("2匹目"); 首輪をはめてお外へGO(猫())
は次のようになる。
1匹目
散歩だわんっ!
2匹目
Traceback (most recent call last):
File "D:\sd_4年前期\4年前期\SUDAP3_-1\cgi-bin\Typer.py", line 19, in <module>
print("2匹目");首輪をはめてお外へGO(猫())
File "D:\sd_4年前期\4年前期\SUDAP3_-1\cgi-bin\Typer.py", line 15, in 首輪をはめてお外へGO
型が(犬).か判定(ワンちゃん)
File "D:\sd_4年前期\4年前期\SUDAP3_-1\cgi-bin\Typer.py", line 7, in か判定
else: raise 型判定でエラー(self.型.__name__, type(インスタンス).__name__)
型判定でエラー: 犬型がよかったのに猫型が渡されました