[Python] CHAP. 05

19504 단어 pythonpython

- 객체지향 프로그래밍

객체 : 변수와 함수를 묶어놓은 것
객체지향 프로그래밍 : 객체를 기반으로 하는 프로그래밍

- 객체 생성 이유

: 객체 안에 있는 변수를 안에있는 함수들만 사용하도록

class A:
	def __init__(self):
    	self.__data = 0
    def show(self):
    	print(self.__data)
    def setdata(self, data):
    	self.__data = data
        
a = A()
a.__data = 100	# 무시한다
a.show()
a.setdata(100)
a.show()
[결과]
0
100

1) class 생성

import random
class Test:
    def addTest(self):
        a = random.randint(0, 10)
        b = random.randint(0, 10)
        c = a + b
        print(a, "+", b, "=", end="")
        ans = int(input())
        if ans == c:
            return 1
        else:
            return 0

2) 객체 생성

  • test = Test()
    - test: 객체 이름
    - Test(): Test 객체 생성, 클래스 이름에 괄호를 붙인다
  • 객체 안에 함수를 호출할 때 .을 사용한다
score = 0
test = Test()

while(True):
    print("-----")
    print("[1] add")
    print("[2] substract")
    print("[q] exit")
    print("-----")

    m = input("select menu : ")

    if (m == 'q'):
        break
    elif(m == '1'):
        score += test.addTest() # test 안에 addTest() 함수 호출
    elif(m == '2'):
        score += test.subTest()

print("Your score is", score)

3) 관련 변수도 묶는다

import random

class Test:
	def __init__(self):
    	self.score = 0
    def addTest(self):
    	a = random.randint(0, 10)
        b = random.randint(0, 10)
        c = a + b
        
        print(a, "+", b, "=", end="")
        ans = int(input())
        
        if ans == c:
        	self.score = self.score + 1
    def subTest(self):
    	a = random.randint(0, 10)
        b = random.randint(0, 10)
        c = a - b
        
        print(a, "-", b, "=", end="")
        ans = int(input())
        
        if ans == c:
        	self.score = self.score + 1
    

- 최종 코드

import random

class Test:
	def __init__(self):
    	self.score = 0
    def addTest(self):
    	a = random.randint(0, 10)
        b = random.randint(0, 10)
        c = a + b
        
        print(a, "+", b, "=", end="")
        ans = int(input())
        
        if ans == c:
        	self.score = self.score + 1
    def subTest(self):
    	a = random.randint(0, 10)
        b = random.randint(0, 10)
        c = a - b
        
        print(a, "-", b, "=", end="")
        ans = int(input())
        
        if ans == c:
        	self.score = self.score + 1
            
test = Test()

while(True):
    print("-----")
    print("[1] add")
    print("[2] substract")
    print("[q] exit")
    print("-----")

    m = input("select menu : ")

    if (m == 'q'):
        break
    elif(m == '1'):
        test.addTest() # test 안에 addTest() 함수 호출
    elif(m == '2'):
        test.subTest()

print("Your score is", test.score)
  • del : 객체 지우는 방법
    -> 변수는 사라지지만 실제로 객체가 바로 메모리 해제되는것은 아니다

좋은 웹페이지 즐겨찾기