クラス名を含む文字列を使用してクラス自体を参照するにはどうすればよいですか?Python:文字列からのクラスへの参照?
>>> b = SomeSubClass() >>> b.display_var() Traceback (most recent call last): File "", line 1, in File "", line 4, in display_var AttributeError: 'str' object has no attribute 'the_var' >>>
ありがとう:
は...
class WrapperClass:
def display_var(self):
#FIXME: self.__class_name__.__name__ is a string
print self.__class__.__name__.the_var
class SomeSubClass(WrapperClass):
var = "abc"
class AnotherSubClass(WrapperClass):
var = "def"
と明らかにエラーメッセージが表示され、この(動作しない)exempleを参照してください!
+1うまく説明しました –
hmmm: "変数 'X'は参考になります。正確ではありません。識別子 "X"はクラスオブジェクト自体であり、定数が使用されるところならどこでも使用できます。 –
確かに。私が不器用な英語で説明しようとしているのは、Xはクラスオブジェクトですが、実際は単なる参考にすぎません。 「X」に何か他のものを割り当てた場合、それはもはや存在しません。重要な点は、Pythonでは名前「X」が特別なものにならないことです。それは単なる別の変数です。 – bobince