[제로베이스 데이터 분석 취업 스쿨]Day6 python 중급

메인 파일

__name__ 전역변수

파일을 저장할 시, 파일 이름이 __name__의 전역변수에 저장된다. 

실행파일인 경우에 __main__으로 저장된다. (가장 먼저 실행된다.)

실행하는 모듈중에서, 모듈이 실행파일일 경우에만 실행하고 싶으면 아래와 같이 조건문을 작성하면 된다. 

if __name == '__main__':
	print(f'10cm: {cmToMm(10)}mm')

 

패키지

패키지를 이용하면 관련 있는 모듈그룹으로 관리할 수 있다. 

->디렉토리를 만들어 추가할 수 있다. 

site-packages에 있는 모듈은 어디서나 사용할 수 있다. 

venv - library -  site-packages에 위치해 있다. 

virtual environment 가상환경을 얘기한다. 

 

자주 사용하는 외부 모듈

sum, max, min, pow(거듭 제곱), round(반올림)

math 관련 모듈

math.fabs : 절대값을 구하는 모듈이다.

math.ceil : 올림 

math.floor:내림

math.trunc : 버림

math.gcd : 최대공약수

math.factorial : 팩토리얼

math.sqrt :제곱근 

 

Time 관련 모듈

시간에 관해서 뽑아내는 모듈이다. 

 

객체지향 프로그래밍 

객체는 속성 기능의 합이다. 

클래스로 붕어빵 찍듯이 여러 개의 객체를 생성할 수 있다. 

 

객체 사용의 장점

코드 재사용, 모듈화에 좋다. 

 

클래스와 객체 생성

클래스는 class 키워드와 속성(변수) 그리고 기능(함수)를 사용해서 만든다. 

 

객체 속성 변경

myPC.CPU = 'i9'
myPC.memory = '64G'
myPC.CPU = '1T'
myPC.printPCInfo()

 

객체와 메모리

 

변수는 객체의 메모리 주소를 저장하고 이를 이용해서 객체를 참조한다. 

rb1에서 rb2를 복사한 경우 rb2rb1의 주소를 복사하여, 그 값을 가질 수 있다.

 

실습 

 

얕은복사와 깊은복사

얕은 복사란? 객체 주소를 복사하는 것으로 객체 자체가 복사되지 않는다.

하나의 객체의 값을 바꾸면, 복사된 객체의 값도 바뀐다. 

주로 변수1=변수2와 같이 사용한다. 

깊은 복사란? 객체 자체를 복사하는 것으로 또 하나의 객체가 만들어진다.

주로 copy.() 메소드를 사용한다.

 

클래스 상속 

클래스는 또 다른 클래스를 상속해서 내 것처럼 사용할 수 있다. 

class NormalCar:

	def drive(self):
    	print('Normalcar drive called')
        
    def drive(self):
    	print('Normalcar drive called')
        
class TurboCar(NormalCar):
	def turbo(self):
    	print('TurboCar turbo called')
        
myTurboCar.turbo()
myTurboCar.drive()
myTurboCar.back()

터보카는 노멀카의 원래 기능을 상속받아 쓰고, 터보 기능도 사용할 수 있다.

 

생성자 

__init__() : 객체가 생성될 떄 생성자를 호출하면 자동 호출된다. 그리고 속성을 초기화한다. 

super() : 상위 클래스의 속성을 초기화하기 위해서 사용한다. 매개변수로 self값을 넣지 않아도 된다. 

다중 상속

2개 이상의 클래스를 상속한다. 

실습