4559


あるクラスのメンバ関数内から、そのクラス名を取得することは可能でしょうか。  
教えていただきたいのはPython 3での方法ですが、一応Python 2での方法も教えていただけると幸いです。

## 例

[code]

    class Foo:
        def __init__(self):
            pass
    
[/code]

という風なクラスがあった時に、`Foo`を取得するといったものです。


CC BY-SA 3.0
2015-01-14T12:43:29.263
4556
2015-01-14T13:27:53.257
197
question
python
メンバ関数からクラスの名前を取得する方法


[こちら](https://hidelafoglia.wordpress.com/2008/12/09/python%E3%82%AF%E3%83%A9%E3%82%B9%E5%90%8D%E3%81%AE%E5%8F%96%E5%BE%97-__class__-
__name__/)に載っていました。

[code]

    class Foo(object):
    def __init__(self):
        print(self.__class__.__name__) # >>> Foo
    
    a = Foo()
    print(a.__class__.__name__) # >>> Foo
    
[/code]

Pythonのバージョンは2.7でも3.4でも動きました。


CC BY-SA 3.0
2015-01-14T13:21:20.513
4558
2015-01-14T13:21:20.513
3589
4556
answer


原始的な感じですが、 `__class__.__name__` が使えます。。

[code]

    class Foo:
        def whoAmI(self):
            print( "I am " + self.__class__.__name__)
    
    Foo().whoAmI()
    
[/code]


CC BY-SA 3.0
2015-01-14T13:21:39.863
4559
2015-01-14T13:27:53.257
2015-01-14T13:27:53.257
4978
4978
4556
answer