Pythonでは、クラスとインスタンスの両方から、事前定義されていないクラス変数にアクセスすることができます。ただし、あらかじめ定義されたクラス変数(「名前」など)をオブジェクトインスタンスからアクセスすることはできません。私は何が欠けていますか?ありがとう。Python:定義済みのクラスの変数アクセス
ここに書いたテストプログラムです。
class Test:
'''
This is a test class to understand why we can't access predefined class variables
like __name__, __module__ etc from an instance of the class while still able
to access the non-predefined class variables from instances
'''
PI_VALUE = 3.14 #This is a non-predefined class variable
# the constructor of the class
def __init__(self, arg1):
self.value = arg1
def print_value(self):
print self.value
an_object = Test("Hello")
an_object.print_value()
print Test.PI_VALUE # print the class variable PI_VALUE from an instance of the class
print an_object.PI_VALUE # print the class variable PI_VALUE from the class
print Test.__name__ # print pre-defined class variable __name__ from the class
print an_object.__name__ #print the pre-defined class varible __name__ from an instance of the class
クラスとは異なり、インスタンスには定義された名前がないため、 '__name__'はありません。同様に、インスタンスはモジュール内で定義されていないので、 '__module__'はありません。また、インスタンスがあらかじめ定義されたクラス変数にアクセスすることはできません。たとえば、 '__doc__'や' __weakref__'や '__init __()'などのメソッドがあります。 – ekhumoro
ありがとうございます。あなたの説明は明確です。 – RebornCodeLover