AI/Python
Python Class 기초
Urong
2020. 12. 18. 14:52
728x90
프로그램언어를 다루면 클래스를 대부분 사용한다.
Python에서의 클래스 사용법을 간단하게 연습해 보았다.
#Class 클래스
class Pet: # 클래스 선언(클래스명은 대문자로 시작)
color = ""
kind = "dog"
character = "home_grown"
strength = 100
def walk(self, do):
self.strength = self.strength - do
def eat(self, do):
self.strength = self.strength + do
def sleep(self, do):
self.strength = self.strength + do
poodle = Pet()
poodle.color = 'brown'
poodle.walk(15)
print(poodle.color)
print(poodle.strength)
siam = Pet()
siam.kind = 'cat'
print(siam.kind)
class Pet2: # 클래스 선언(클래스명은 대문자로 시작)
def __init__(self, color, kind, character): #<-생성자
self.color = color
self.kind = kind
self.character = character
self.strength = 100
color = ""
kind = "dog"
character = "home_grown"
strength = 100
def walk(self, do):
self.strength = self.strength - do
def eat(self, do):
self.strength = self.strength + do
def sleep(self, do):
self.strength = self.strength + do
poodle2 = Pet2('brown', 'dog', 'active')
siam2 = Pet2('white', 'cat', 'quietly')
print(poodle2.color)
poodle2.walk(15)
print(poodle2.strength)
siam2.eat(20)
print(siam2.strength)
#클래스 상속(Inheritance) Pet2클래스의 변수 및 메소드를 사용한다.
class Animal(Pet2):
def walk(self, do): #메소드 오버라이드
if self.strength <= 0:
print("체력이 없습니다.")
else:
self.strength = self.strength - do
simba = Animal("yellow", "tiger", "active")
simba.walk(100)
print(simba.strength)
simba.walk(100)
print(simba.strength)
#사칙연산 계산기
class Calcul:
def __init__(self, fr, se):
self.fr = fr
self.se = se
def hap(self):
result = self.fr + self.se
return result
def cha(self):
result = self.fr - self.se
return result
def gob(self):
result = self.fr * self.se
return result
def div(self):
result = self.fr / self.se
return result
cal1 = Calcul(6,8)
print(cal1.hap())
cal2 = Calcul(5,2)
print(cal2.div())
여기서 의문은 클래서 생성자사용시에 이 self
상속받은 클래스의 변수를 사용하려면
self.변수명 = 변수명
이걸 하는 이유를 모르겠다. 어디 누가 설명 좀 시원하게 해줬으면 좋겠다.
단순히 선언하는거 같은데 생성자에 포함시켜버리면 안되는 것이었던가...
728x90
반응형