데이터분석 6일 차

김보성·2024년 1월 12일

파이썬(24~27)

실행(메인) 파일(01)

name에는 모듈이름이 저장되거나 '_main'이 저장된다.
name : main

실행(메인) 파일(02)

전역변수 __name을 이용한 실행파일 지정

패키지(모듈을 묶어서 관리하자!)

ex) 5_014 파이썬파일(정수패키지, 실수패키지)

site -packages(어디서나 접근 가능한 패키지를 만들자!)

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

클래스와 객체 생성

클래스는 class 키워드와 속성(변수) 그리고 기능(함수)를 이용해서 만든다.
객체는 클래스의 생성자를 호출한다.

객체와 메모리

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

class Robot: #클래스 생성.

def __intit__(self, color, height, weight):        #속성3가지
    self.color = color
    self.height = height
    self.weight = weight                           #초기설정값

def printRobotInfo(self):
    print(f'color : {self.color}')
    print(f'height : {self.height}')
    print(f'weight : {self.weight}')

객체를 생성.(생성자는 클래스와 이름이 같다.)(변수까지 작성해야 한다.)

rb1 = Robot('red', 200, 80)
rb2 = Robot('blue', 300, 120)
rb1.printRobotInfo()
rb2.printRobotInfo()

출력값 :

color : red
height : 200
weight : 80

color : blue
height : 300
weight : 120

복사본 만들기 : ex) scores = () , print(scores)

                 copyScores = scores.copy()

얕은 복사와 깊은 복사

import copy

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

클래스 상속(다른 클래스의 기능을 내 것처럼 사용하자!)

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

ex) TurboCar는 NormalCar상속을 받으면 NormalCar 기능도 같이 사용가능.
class NormalCar:

def drive(self):
    print('[Normalcar] drive() called!!')

def back(self):
    print('[Normalcar] back() called!!')

class TurboCar(NormalCar):

def turbo(self):
    print('[TurboCar] turbo() called!!')

myTurboCar = TurboCar()

myTurboCar.turbo()
myTurboCar.drive()
myTurboCar.back()

출력값 :

[TurboCar] turbo() called!!
[Normalcar] drive() called!!
[Normalcar] back() called!!

생성자(01~02)

객체가 생성될 때 생성자를 호출하면 init()가 자동 호출된다.

ex)
class Calculator:

def __init__(self, n1, n2):
    self.num1 = n1
    self.num2 = n2

cal = Calculator(10, 20)
print(f'cal.num1 : {cal.num1}')
print(f'cal.num2 : {cal.num2}')

출력값 :

cal.num1 : 10
cal.num2 : 20

상위 클래스의 속성을 초기화하기 위해서 super()를 이용한다.

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

ex)

class BasicCalculator:
def add(self, n1, n2):
return n1 + n2

def sub(self, n1, n2):
    return n1 - n2

def mul(self, n1, n2):
    return n1 * n2

def div(self, n1, n2):
    return n1 / n2

class DeveloperCalculator:

def mod(self, n1, n2):
    return n1 // n2

def flo(self, n1, n2):
    return n1 % n2

def exp(self, n1, n2):
    return n1 ** n2

class Calculator(BasicCalculator, DeveloperCalculator):
def init(self):
pass

cal = Calculator()
print(f'cal.add(10,20) : {cal.add(10,20)}')
print(f'cal.sub(10,20) : {cal.sub(10,20)}')
print(f'cal.exp(10,20) : {cal.exp(10,20)}')

출력값 :

cal.add(10,20) : 30
cal.sub(10,20) : -10
cal.exp(10,20) : 100000000000000000000

*다중 상속 너무 남발하면 안됨(필요할 때만)

profile
안녕하세요~

0개의 댓글