Python은 Strong Typing을 채택하고 있다.
이는 Object가 mutable type이냐 immutable type이냐에 상관없이 type이 변경되지 않음을 의미한다.
주의할 건, Object가 대상인 점이다.
Python에서 Object는 memory에 할당된 일종의 데이터 덩어리(chunk)로 최소한 다음을 가지고 있어야 한다.
1. Value
2. Unique ID (CPython에선 memory address) : id(target_obj)
3. Type (type에 의해 같은 value라도 다르게 해석됨) : type(target_obj)
4. Reference Count (Garbage Collection을 위해 필요.) : sys.getrefcount(target_obj)
동시에, Python 을 dynamically typed language이기 때문에
variable의 경우 type과 함께 선언되지 않고도 사용가능하며,
중간에 다른 type의 object를 자유롭게 reference할 수 있다.
요약하면,
- Strong Typed 라는 관점은 Object에 대한 것이고,
- Dynamic (Typing) Language라는 관점은 Variable에 대한 것이다.
2023.06.11 - [Programming] - [Python] Dynamic Language vs. Static Language
https://dsaint31.me/mkdocs_site/python/oop/oop_0_01_Object/#object
'Programming' 카테고리의 다른 글
[Python] importlib.reload : module 재적재 (0) | 2023.06.18 |
---|---|
[Python] Exception 처리 (0) | 2023.06.16 |
[Python] Variable (and Object) (0) | 2023.06.13 |
[Python] Arithmetic in Python and Augmented Assigment (0) | 2023.06.12 |
[Python] (Data) Type : Summary (0) | 2023.06.12 |