私はそうのように、Pythonの2.5のクラスとタイプのレジストリを持っている:既存のタイプに最も近いマッチングタイプを見つける最も良い方法は何ですか?
class ClassA(object):
pass
class ClassB(ClassA):
pass
MY_TYPES = {
basestring : 'A string',
int : 'An integer',
ClassA : 'This is ClassA or a subclass',
}
私は関数に型を渡すことができるようにしたい、それが中で最も一致するタイプを調べる必要があるだろう階層。したがって、str
を検索すると、"A string"
が返され、ClassB
を検索すると、"This is ClassA or a subclass"
が返されます。問題は、タイプオブジェクトのスーパークラス(または、むしろ、MROチェーンをトレースする方法)を見つける方法がわかりません。
これを処理する最良の方法は何ですか?
class ClassA(object):
pass
class ClassB(ClassA):
pass
print ClassB.__bases__
(<class '__main__.ClassA'>,)
はいえ、int
のようなものに注意してください:。__bases__
を使用し、クラスのスーパークラスを取得するには
nice!私はいつも検査することを忘れています...人格の欠陥か何かでなければなりません。 –