본문 바로가기

분류 전체보기

(32)
(Python) 파이썬 변수 종류 / None / 오버로딩 & 오버라이딩 1. 파이썬 변수 종류 - 지역 변수 : 함수 안에서 선언되는 변수 - 전역 변수(클래스 변수) : 함수 외부에서 선언되는 변수. 프로그래밍이 종료될 때, 클래스가 종료될 때 함께 사라지는 변수 - 인스턴스 변수 : 클래스의 인스턴스 안에 선언되는 변수. 앞에 'self.'가 붙는다. 2. None 참조값 변수가 아무것도 가리키고 있지 않다면 None으로 설정하는 것이 좋다. 그렇지 않으면 쓰레기 값이 들어가 있다. None은 아무것도 참조하고 있지 않다는 것을 나타내는 특별한 값 3. 오버로딩 (Overloading) 같은 메서드명으로 매개변수와 데이터 타입, 순서를 다르게 해 다양한 메서드를 만드는 것 파이썬 미지원 4. 오버라이딩 (Overriding) 같은 메서드명, 매개변수 형태 개수도 동일한데..
(Python) 객체지향 프로그래밍 - 인스턴스가 함수의 인자값인 경우 인스턴스를 함수의 인자값으로 이용할 수 있다는 것을 일깨우기 위해 다음과 같은 코드를 게시해 둔다. class Rectangle: # side = 0 는 매개변수 값이 주어지지 않을 때 0 으로 초기화된다. def __init__(self, side = 0): self.side = side # 정사각형의 면적을 출력하는 메서드 def getArea(self): return self.side ** 2 # 함수 정의 # 클래스 Rectangle의 인스턴스와 횟수를 매개변수로 받아서 횟수 값이 0이 # 될 때까지 변의 길이와 면적을 출력해주는 함수 def printArea(rectangle, cnt): print("인스턴스의 주소: ", id(rectangle)) print("cnt의 주소: ", id(cnt..
(Python) 객체지향 프로그래밍 - 인스턴스 변수와 클래스 변수 인스턴스 변수 : - 인스턴스를 생성해야 비로소 사용할 수 있는 변수 - 독립적인 메모리 공간을 차지하고 있으며 해당 인스턴스에게만 영향을 끼친다. 클래스 변수 : - 클래스가 로딩 되면서 미리 메모리 공간을 할당하고 저장되는 변수 - 모든 인스턴스에게 공유되는 변수이다. - 클래스 변수의 접근 방법 : 클래스명.클래스 변수명 (권장사항) - 클래스 변수 값의 변경은 모든 인스턴스에게 영향을 끼친다. - 클래스 변수는 인스턴스 생성 없이도 접근 가능! class Car: # Car 클래스의 필드 # 클래스 변수는 반드시 필드로 선언해줘야 한다. (중요) # 인스턴스 변수의 경우 생성자 내부에서 선언해줘도 됨. count = 0 # 기본 생성자 def __init__(self): # 인스턴스 변수 생성 #..
(Python) 객체지향 프로그래밍 - self 우리가 클래스에서 'self.필드명' 을 많이 이용하는데 이에 대해 궁금점이 생겼고, 해당 내용에 대해 깨달은 바를 적고자 한다. class Circle_1: __radius = 10 def Width(self): width = np.pi * self.__radius ** 2 return width def Round(self): length = 2 * np.pi * self.__radius return length def __str__(self): print("원의 반지름 : ", self.__radius) print("원의 넓이 : ", self.Width()) print("원의 둘레 : ", self.Round()) Circle2 = Circle_1() Circle2.__str__() class Ci..
(Python) 객체지향 프로그래밍 - 매개변수가 있는 생성자 class Monitor: # 필드 선언 # __ private 성질은 같은 클래스 내에서만 접근 가능하다. #__company = "" #__inch = 0 #__price = 0 #__color = "" # 파이썬에서는 1개 이상의 생성자를 만들 수 없다!! # C++ 에 Overloading 이라는 개념이 존재하긴 한다. # -> 매개변수의 타입과 개수에 따라서 같은 이름의 메서드라도 다른 메서드가 호출이 되는 형태를 지칭한다. # 매개변수가 4개 존재하는 생성자 def __init__(self, company, inch, price, color): # self.company 는 멤버변수를 칭하는 것이며, company는 외부에서 # 생성자를 호출할 때 매개변수 값을 들어오는 것을 의미 self._..
(Python) 객체지향 프로그래밍 - 은닉화, 캡슐화 객체지향에는 캡슐화, 은닉화 라는 개념이 존재한다. 클래스 내부의 필드 및 변수를 밖으로 함부로 불러내거나 수정하는 것을 방지하기 위해서인데, 필드를 캡슐화를 하고자 한다면, 변수명 앞에 언더바 두개 "__" 를 붙이면 된다. ex) __name , __address 이렇게 되면 해당 필드를 클래스 밖에서 곧바로 호출할 수 없다. 그러면 클래스 밖에서 필드를 수정하거나 호출하려면 어떻게 해야할까? 이럴때 우리는 클래스 메서드로 get() 메서드, set() 메서드를 작성한다! 단, set() 메서드의 경우 필드값을 수정하는 것이므로 신중하게 작성하도록 한다! 다시 말해, 수정되어도 괜찮은 것만 set() 메서드를 작성하면 된다.
(Python) 객체지향 프로그래밍 - 생성자 생성자 ( Constructor ) : 인스턴스를 생성할 때 무조건 호출되는 메서드 ex) 인스턴스를 생성하면서 필드값을 초기화하는 용도로 메서드 이용 가능 1. __init__() 이라는 이름을 갖는다. 이때, init 은 initialize의 약자이다. (주의) 언더바가 2개 붙은 것은 파이썬 내장 이름이므로 다른 함수명이나 변수명으로 이를 이용하면 안된다. 2. 클래스에는 생성자가 반드시 단 한개씩 있어야 한다! 생성자가 없는 경우 파이썬 인터프리터가 알아서 만들어준다. 생성자는 두가지 종류가 있다. 매개변수가 없는 생성자 __init__(self) : 기본 생성자 동일한 특성을 가진 인스턴스만을 생성하게 된다,, 매개변수가 있는 생성자 __init__(self, ~~,~~) 인스턴스를 만들 때 초..
(Python) 객체지향 프로그래밍 - 클래스 객체지향 프로그래밍이란? 세계는 사람, 텔레비전, 세탁기, 냉장고 등의 객체로 구성되어 있는데, 이와 비슷하게 소프트웨어도 객체로 구성한다는 의미이다. 객체들은 객체 나름대로의 속성과 기능을 가지면서 다른 객체들과 상호 작용한다! Java, Python, C++ 등이 객체지향 프로그래밍을 지원한다. 객체지향 프로그래밍의 핵심 단어 : 클래스 Class 클래스의 구성 인자 : 1. 멤버 변수 ( 필드 ) 2. 멤버 함수 ( 메서드 ), 생성자 이때, 생성자는 말 그대로 클래스를 생성시켜주므로, 반드시 있어야 한다! 클래스는 '현실 세계의 사물을 컴퓨터 안에서 구현하려고 만들어진 개념' 인데, 설계도, 붕어빵 틀 이라고 비유할 수 있다. 이러한 클래스를 통해 우리는 객체 ( 인스턴스 )를 여러개 만들 수 있..