python을 사용할 때 변수(variable) 이라는 말과 속성(attribute)이라는 말이 혼란스럽기도 했고, attribute를 알아보니 class, instance attribute 가 따로 있어 정리했습니다.
지금은 간단히 class 안에 있는 것은 attribute 이고 class 로 만든 새로운 instance는 variable 이라고 이해하고 있습니다.
-- 내용 --
variable: 우리가 일반적으로 이야기하는 변수, class 로 새로운 instance 를 생성하면 그것이 변수
attribute: class 내에서 만들어진 변수
attribute 세부
1. instance attribute
2. class attribute
Beyond performance considerations, there is a significant semantic difference. In the class attribute case, there is just one object referred to. In the instance-attribute-set-at-instantiation, there can be multiple objects referred to.
성능에 대한 이야기를 떠나서, 확실하게 다른점이 있다. class attribute는 1개의 object 밖에 없다. 초기화를 통해 만들어진 instance attribute눈 여러개의 object 가 만들어진다.
For instance
예를 들면 아래와 같다.
1. class attribute
class A: foo = [] a, b = A(), A() a.foo.append(5) b.foo
[5]
-> class level 에서 작성, self.xxx 로 사용하지 않음
2. instance attribute
class C: def __init__(self): self.foo = [] c, d = C(), C() c.foo.append(5) d.foo
[]
-> instance level 에서 접근, self.xxx 로 사용
The difference is that the attribute on the class is shared by all instances. The attribute on an instance is unique to that instance.
class 의 attribute는 모든 instance 들이 공유하고, instance 의 attribute 는 각 attribute 마다 고유하다.
참조: Link
댓글 없음:
댓글 쓰기