뮤트 개발일지

AIFFEL 아이펠 10일차 본문

AIFFEL

AIFFEL 아이펠 10일차

박뮤트 2022. 1. 11. 18:38

개인적인 사정으로 오늘은 결석을 해서 혼자 공부하였다ㅜ

풀잎은 참여못했지만 오늘 공부한 노드만이라도 정리해서 올려야겠다.

(파이썬의 객체지향에 대해 배웠고 헷갈린 정보들만 정리해놓자.)


객체: 파이썬에서 object라 불리는 것들은 모두 변수에 할당될 수 있고, 함수의 인자로 넘겨질 수 있는 것들이다.

 

self

- self는 자기 자신

- 클래스에 의해 생성된 객체(인스턴스)를 가리킨다.

- 클래스의 메소드는 인자로 해당 인스턴스(self)를 받아야 한다.

- 메소드를 호출할 때는 self 인자를 전달하지 않는다. self의 값은 인터프리터가 제공한다.

- 인스턴스 변수를 정의할 때에는 접두사 self.을 붙여준다.

 

n면체 주사위 만들기

from random import randrange

class FunnyDice:
    def __init__(self, n=6):
        self.n = n
        self.options = list(range(1, n+1))
        self.index = randrange(0, self.n)
        self.val = self.options[self.index]
    
    def throw(self):
        self.index = randrange(0, self.n)
        self.val = self.options[self.index]
    
    def getval(self):
        return self.val
    
    def setval(self, val):
        if val <= self.n:
            self.val = val
        else:
            msg = "주사위에 없는 숫자입니다. 주사위는 1 ~ {0}까지 있습니다. ".format(self.n)
            raise ValueError(msg)

def get_inputs():
    n = int(input("주사위 면의 개수를 입력하세요: "))
    return n

def main():
    n = get_inputs()
    mydice = FunnyDice(n)
    mydice.throw()
    print("행운의 숫자는? {0}".format(mydice.getval()))

if __name__ == '__main__':
    main()

'AIFFEL' 카테고리의 다른 글

AIFFEL 아이펠 12일차  (0) 2022.01.12
AIFFEL 아이펠 11일차  (0) 2022.01.11
AIFFEL 아이펠 사이킷런으로 구현해보는 머신러닝  (0) 2022.01.10
AIFFEL 아이펠 9일차  (0) 2022.01.06
AIFFEL 아이펠 8일차  (0) 2022.01.05