Ruby の「is_a」に相当する Python はあるのでしょうか?方法?
> "".is_a? String
=> true
情報:
is_a?(class) → true or false
ありがとう。
それは正確にどの部分が必要かによって異なります。
foo がクラス C のインスタンスであるか、そのサブクラスのインスタンスであるかを知りたい場合は、次のようにします。
isinstance(foo, C)
foo が C のインスタンスであり、C のみであるかどうかを知りたい場合は、次のようにします。
type(foo) == C
大まかに言えば、 isinstance(…) や type(…) のようなものの頻繁な使用はコードの臭いです。ダックタイピングが壊れていることを意味し、Python はその種の規約に大きく依存しているからです。たとえば、有害であると考えられるインスタンスを参照してください。