[Python] CHAP. 05


-オブジェクト向けプログラミング


オブジェクトおぶじぇくと:変数と関数をバインドへんすうとかんすうをバインド
オブジェクト向けプログラミングオブジェクト向けプログラミングオブジェクトベースプログラミング

-オブジェクトを作成する理由


:オブジェクトの変数のみを使用
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)クラスの作成

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:オブジェクト名
    -テスト():クラス名にかっこ
  • を付けるテストオブジェクトを生成します.
  • オブジェクト内で関数を呼び出す場合は.を使用します.
    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:オブジェクトを削除する方法
    ->変数は消えますが、オブジェクトはすぐにメモリから解放されません.