Variable (and Object)
1. 정의
Python에서 Variable은 Memory에 할당된 Object를 참조하는 Name (=Reference, Identifier)에 불과하다.
이 문서에서 Object는 Python에서의 Object로
type과 value, ID (CPython에서는 할당된 memory address), 그리고 reference count를
가지고 있는 데이터 덩어리를 가리키는 것으로 한정한다.
- Static Language에서의 Variable들이 type을 가지고 memory에 binding 되어있기 때문에,
- Static Language에서 variable들은 자신의 type와 다른 type의 memory 영역에 binding이 불가함.
- 다른 type의 memory영역과의 binding을 위해서는, (explicit) type casting이라는 처리가 필요.
- Python에서는 단순하게 Object를 가리키는 Name이 바로 Variable이다.
- 때문에 declaration 없이, 참조대상인 object를 가리키도록 해주는 assignment statement만으로 variable 생성이 가능하다.
- variable은 type을 가지고 있지 않음 (대상이 되는 object는 고정된 type을 가짐).
- 단순히 object를 가리키고만 있기 때문에 다른 object를 가르키도록 reassignment(재할당)하기가 매우 쉬움.
더 직관적으로 애기하면 Variable은 Value (=Object)를 가리키는 name임.
https://dsaint31.me/mkdocs_site/python/oop/oop_0_01_Object/#object
BME228
Object (객체) 란 보거나 만질 수 있는 사물 (공간을 차지하고 있는 물질적인 사물) OOP에선 Concept(개념) 도 Object 임. Application(응용프로그램)에서, 명확한 한계와 의미를 가지고 있는 사물 이나 개념,
dsaint31.me
2023.06.13 - [Programming] - [Python] Strong Typing이란? with Object
[Python] Strong Typing이란? with Object
Python은 Strong Typing을 채택하고 있다. 이는 Object가 mutable type이냐 immutable type이냐에 상관없이 type이 변경되지 않음을 의미한다. 주의할 건, Object가 대상인 점이다. Python에서 Object는 memory에 할당된
dsaint31.tistory.com
2. Naming Rules (convention이 아님!)
- variable은 영어대소문자와 underscore, 숫자 들의 조합을 사용할 수 있음 (module도 같은 규칙을 따름)
- 단, Python이 예약하고 있는 keywords 는 사용불가함.
- variable의 첫글자가 숫자가 올 수 없음.
- 숫자로 시작하는 module 의 경우, import등이 되질 않음.
- underscore로 시작하는 variable들은 일반적으로 특별한 의미를 가지고 있음을 관례적으로 나타냄.
variable은 위의 규칙 때문에 하나의 word로 구성되게 되며, 대소문자를 구분한다는 점을 꼭 기억하자
http://ds31x.blogspot.com/2023/07/etc-naming-convention.html
[Etc] Naming Convention
Naming Convention은 프로그래밍에서 variable이나 class등의 이름을 짓는 일종의 약속이다. Camel Naming Java나 C++(MFC나 windows 대상인 경우)등에서는 Camel Naming (or Camel Case)가...
ds31x.blogspot.com
2023.06.11 - [Programming] - [Python] Keyword란? (Soft Keyword 포함)
[Python] Keyword란? (Soft Keyword 포함)
Keywords (or Reserved Words)Keyword란 Python에서 특별한 단어 (special word)들을 가르킨다.Keyword들은 Python에서 특정한 목적으로 사용되도록 이미 정해진 word들로Python에서 정해놓은 방법 외로는 사용을 할 수
dsaint31.tistory.com
3. Example
다음 그림은 integer literal 7
(=Object임) 을 variable a
에 할당하고, variable b
,c
들이 같은 Object를 참조하도록 할당된 상태를 보여줌.
- Frame (Namespace의 구현물)에서 variable들이 존재하고, 이들은 동일한 object
7
을 가리키는 reference에 불과하다.
만약 a = 'reassignment'
를 수행하면 다음과 같이 a
는 다른 object를 가리키게 된다 (마치 type이 변한 것처럼 보일 수 있음).
4. 관련 URLs
https://pythontutor.com/visualize.html
Python Tutor code visualizer: Visualize code in Python, JavaScript, C, C++, and Java
Please wait ... your code is running (up to 10 seconds) Write code in Python 3.6 C (gcc 9.3, C17 + GNU) C++ (g++ 9.3, C++20 + GNU) Java 8 JavaScript ES6 ------ Python 2.7 [unsupported] Visualize Execution hide exited frames [default] show all frames (Pytho
pythontutor.com
2023.06.12 - [Programming] - [Python] (Data) Type : Summary
[Python] (Data) Type : Summary
1. Type 이란? Programming에서 사용되는 모든 value 혹은 object 들의 종류 를 (data) type이라고 부름. 수학에서 숫자의 종류(type)를 실수, 정수, 자연수 등으로 나누는 것을 생각하면 쉽다. Programming에서는
dsaint31.tistory.com
2023.02.20 - [Programming] - [Basic] Literal
[Basic] Literal
Literal소스 코드 상에서 고정된 값을 가르킴. (또는 고정된 값을 나타내는 표기법을 의미함.)Programming language에서 data의 값을 지정(specifying data values)하는 방법은 다음 중의 하나임.1. Literal을 사용.2
dsaint31.tistory.com
'Programming' 카테고리의 다른 글
[Python] Exception 처리 (0) | 2023.06.16 |
---|---|
[Python] Strong Typing이란? with Object (1) | 2023.06.13 |
[Python] Arithmetic in Python and Augmented Assignment (0) | 2023.06.12 |
[Python] (Data) Type: Summary (0) | 2023.06.12 |
[Python] Expression vs. Statement (0) | 2023.06.12 |