반응형
다음 사이에 의미있는 차이가 있습니까?
class A(object):
foo = 5 # some default value
대
class B(object):
def __init__(self, foo=5):
self.foo = foo
많은 인스턴스를 만드는 경우 두 스타일의 성능 또는 공간 요구 사항에 차이가 있습니까? 코드를 읽을 때 두 스타일의 의미가 크게 다르다고 생각하십니까?
해결 방법
성능 고려 사항 외에도 큰 의미 적 차이가 있습니다. 클래스 속성의 경우 참조되는 객체는 하나뿐입니다. instance-attribute-set-at-instantiation에는 여러 개체가 참조 될 수 있습니다. 예를 들어
>>> class A: foo = []
>>> a, b = A(), A()
>>> a.foo.append(5)
>>> b.foo
[5]
>>> class A:
... def __init__(self): self.foo = []
>>> a, b = A(), A()
>>> a.foo.append(5)
>>> b.foo
[]
참조 페이지 https://stackoverflow.com/questions/207000
반응형
'파이썬' 카테고리의 다른 글
파이썬은 튜플을 배열로 변환 (0) | 2020.12.27 |
---|---|
파이썬 Square of each element of a column in pandas (0) | 2020.12.27 |
파이썬 Subtracting two lists in Python (0) | 2020.12.27 |
파이썬 csv 파일 스크래피에 쓰기 (0) | 2020.12.27 |
파이썬 List of IP addresses/hostnames from local network in Python (0) | 2020.12.27 |
댓글