Python이란 언어를 접한지는 꽤 오랜 시간이 지났지만, 용어와 용법은 늘 잊어버리고, 다른 분들의 글을 읽다보면 잘 이해를 못하는 경우가 많네요. 그래서 관련 용어들을 정리해놓고, 혼란스러울 때마다 찾아보고자 합니다.
제 개인적으로 혼란스러운 용어들은 attributes, method 등등의 용어인데, 이 용어들은 Object-oriented programming에서 사용하는 용어와 관련이 있는 것 같습니다. Object-oriented programming에서의 객체(Object)는 states와 behavior를 가진다고 합니다. 이를 Python에서 사용하는 용어와 맵핑해보면 다음처럼 정리해볼 수 있을 거 같습니다. ('같습니다'라고 적은 것은 저도 아직은 자신이 조금 없어서... 혹시 다른 고수분들께서 댓글로 오류 말씀해주시면 감사하겠습니다)
일반 용어 | Python | 의미 |
Object | Class | |
attributes = members = properties |
variable | - Object가 가진 속성을 의미 - Python Class내 변수 개념과 유사 |
behavior | method | - Class내 함수 |
. | instance | - Python에서 각 Class를 호출하여 생성한 객체 |
Constructor | __init__ | - Object를 초기화해주는 method |
Example
Person이라는 Class가 있다고 해보겠습니다. Person에는 name, age라는 attributes가 있고, eat라는 method가 있습니다. 그리고, tom이라는 instance를 생성해보겠습니다.
위 내용에 대한 코드는 다음과 같이 정리해볼 수 있습니다.
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def eat(self, food):
self.food = food
tom = Person('tom', 29) ## instance 생성
tom.eat("Apple")
반응형
'Let's Programming > Python' 카테고리의 다른 글
함수 인자값으로 사용하는 *args, **kwargs와 Hint 정리 (0) | 2022.06.17 |
---|