클래스는 다양한 객체 생성을 위한 청사진입니다. 객체가 생성되어 클래스를 형성하면 더 이상 클래스 속성에 의존하지 않습니다. 또한 클래스는 생성된 인스턴스의 속성을 제어할 수 없습니다.
아래 예제에서 우리는 클래스 속성을 갖는 MainClass와 고유한 속성 값을 갖는 메인 클래스에서 생성된 객체를 볼 수 있습니다. 이 값을 인쇄하면 명확해집니다. 결국 클래스는 개체 속성의 값에 액세스할 수 없습니다.
예시
class MainClass(object):
class_attr = 'Sun'
def __init__(self, instance_attr):
self.instance_attr = instance_attr
if __name__ == '__main__':
obj1 = MainClass('Mon')
obj2 = MainClass('Tue')
# print the instance attributes
print (obj1.instance_attr)
print (obj2.instance_attr)
#print the class attribute using Mainclass
print(MainClass.class_attr)
#print the classattribute using objects
print (obj1.class_attr)
print (obj2.class_attr)
#printing instance attribute as a class property gives error
#print (MainClass.instance_attr) 오류를 제공합니다. 출력
위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -
Mon Tue Sun Sun Sun