- コードが実行されているファイルの名前
- コードが実行されているクラスの名前
- コードが実行されているメソッドの名前(クラスの属性)
17930 次
4 に答える
33
それぞれの例を次に示します。
from inspect import stack
class Foo:
def __init__(self):
print __file__
print self.__class__.__name__
print stack()[0][3]
f = Foo()
于 2009-05-21T17:34:00.637 に答える
11
import sys
class A:
def __init__(self):
print __file__
print self.__class__.__name__
print sys._getframe().f_code.co_name
a = A()
于 2009-05-21T17:34:10.277 に答える
5
self.__class__.__name__ # name of class i'm in
残りの場合、sysおよびtraceモジュール
http://docs.python.org/library/sys.html http://docs.python.org/library/trace.html
さらに詳しい情報: https ://mail.python.org/pipermail/python-list/2001-August/096499.html および http://www.dalkescientific.com/writings/diary/archive/2005/04/20/ trace_python_code.html
トレースバックモジュールがそれを処理できるので、エラー報告のためにそれが必要でしたか?
于 2009-05-21T17:28:33.487 に答える
3
非常に注意してください。検討:
class A:
pass
B = A
b = B()
ここの「クラス名」は何b
ですか?Aですか、それともBですか?なんで?
重要なのは、知る必要も気にする必要もないということです。オブジェクトはそれが何であるかです:その名前はめったに役に立ちません。
于 2009-05-21T21:39:35.370 に答える