목록전체 글 (305)
RUBY
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/m8V8Q/btrVRCBSRmv/hfjZsw1V6OMNZ2GlpOaKQk/img.png)
클래스 상속 클래스는 또 다른 클래스를 상속해서 내 것처럼 사용할 수 있다. 클래스에서 상속이란, 물려주는 클래스(Parent Class, Super class)의 내용(속성과 메소드)을 물려받는 클래스(Child class, sub class)가 가지게 되는 것입니다. 예를 들면 국가라는 클래스가 있고, 그것을 상속받은 한국, 일본, 중국, 미국 등의 클래스를 만들 수 있으며, 국가라는 클래스의 기본적인 속성으로 인구라는 속성을 만들었다면, 상속 받은 한국, 일본, 중국 등등의 클래스에서 부모 클래스의 속성과 메소드를 사용할 수 있음을 말합니다. 기본적인 사용방법은 아래와 같습니다. 자식클래스를 선언할때 소괄호로 부모클래스를 포함시킵니다. 그러면 자식클래스에서는 부모클래스의 속성과 메소드는 기재하지 않..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/JddTz/btrVPuj8HC5/jN6OT02jMXt5JZ8O6O1Fr0/img.png)
얕은복사와 깊은복사 얕은복사 얕은 복사한 변수는 같은 주소를 가리킨다. a = [1, 2, 3] b = a # a와 같은 주소를 가리킨다 a의 특정 원소를 변경하면 b도 마찬가지로 변경된 값을 가진다. a의 특정 원소를 변경하는 것이 a가 가리키는 주소 변경을 일으키지 않기 때문이다. a[1] = 100 print(b) # b와 a는 여전히 같은 주소를 가리킨다 >>> [1, 100, 3] 깊은복사 깊은 복사한 변수는 똑같은 값을 가지는 새로운 객체의 주소를 가리킨다. import copy a = [1, 2, 3] b = copy.deepcopy(a) # 새로운 [1, 2, 3] 주소를 가리킨다
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/QwWqH/btrVPHjm4rB/Z33zlKODbg3YZEdtD71BC1/img.png)
객체와 메모리 변수는 객체의 메모리 주소를 저장하고 이를 이용해서 객체를 참조한다. * 객체의 값은 메모리 어딘가에 저장된다.
객체 속성 변경 객체 속성은 변경할 수 있다. class NewGenerationPC: def __init__(self, name, cpu, memory, ssd): self.name = name self.cpu = cpu self.memory = memory self.ssd = ssd def doExcel(self): print('EXCEL RUN!!') def doPhotoshop(self): print('PHOTOSHOP RUN!!') def printPCINfo(self): print(f'self.name: {self.name}') print(f'self.cpu: {self.cpu}') print(f'self.memory: {self.memory}') print(f'self.ssd: {self.s..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bfvhlG/btrVP8A3SOx/h9koZkOSeeQuPiCDjkqiK1/img.png)
클래스와 객체 생성 클래스는 class 키워드와 속성(변수) 그리고 기능(함수)를 이용해서 만든다. 객체는 클래스의 생성자를 호출한다. class Car: def __init__(self, color, length): self.color = color self.length = length def doStop(self): print('STOP!!') def doStart(self): print('START!!') 객체 2개 생성 car1 = Car('red', 200) car2 = Car('blue', 300) class Car: def __init__(self, color, length): self.color = color self.length = length def doStop(self): print(..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bOO08b/btrVOAdTVEp/nDi21VON5vSve4iJWRUlZ0/img.png)
객체지향 프로그래밍 객체를 이용한 프로그램으로 객체는 속성과 기능으로 구성된다. ex) 계산기 속성 : 숫자 기능 : 덧셈, 뺄셈, 곱셈,... 자동차 속성 : 색상, 길이, 가격 기능 : 전진, 후진, 정지,... 객체(Object) = 속성(Attribute) + 기능(Function) 객체는 클래스에서 생성된다. 코드 재사용, 모듈화에 좋다.
자주 사용하는 모듈 수학, 난수, 시간 모듈은 코딩할 때 유용하게 사용된다. math 모듈(수학 관련 모듈) math 모듈 함수 fabs, ceil, floor, exp, log, sqrt, sin, asin, cos, acos, tan, degrees, radians math 모듈 상수 pi, e 절대값 (결과값은 실수) fabs(-2) = 2.0 올림 ceil(2.1) = 3 ceil(-2.1) = -2 버림 floor(2.1) = 2 floor(-2.1) = -3 지수함수(e^x) exp(1) = 2.71828 로그 log(2.71828) = 1.0 log(100, 2) = 2 = log(10) 100 루트 sqrt(4.0) = 2 사인/사인역함수 sin(3.14159/2) 1 asin(1.0) =..