在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
謝謝@ekhumoro。你的解釋具有一定的意義。 – RebornCodeLover