class와 모델링

서현·2024년 8월 12일
0

파이썬

목록 보기
12/19
class Human():
	"""사람"""

person1 = Human()
person2 = Human()

클래스에 함수를 넣을 수 있음

class Human():
	"""사람"""

#클래스 Human의 인스턴스로 person1, person2 만듦
person1 = Human()
person2 = Human()


person1.language = "한국어"
person2.language = "English"

print(person1.language)
print(person2.language)
>>>한국어
English

person1.name = "한국인"
person2.name = "인도인"

#class, instance를 만드는 이유
#사람이 볼 때 이해도가 높아짐,

#speak이라는 함수 생성
def speak(person):
  print("{}이 {}로 말을 합니다.".format(person.name, person.language))

speak(person1)
speak(person2)
한국인이 한국어로 말을 합니다.
인도인이 English로 말을 합니다.

#클래스 안에 나중에 값을 추가할 수 있으며 speak를 Human클래스로 들어가게 하고 싶다면
Human.speak = speak

person1.speak()
person2.speak()
>>> 한국인이 한국어로 말을 합니다.
인도인이 English로 말을 합니다.

모델링

: class로 현실의 개념을 표현

class Human():
  """인간"""

# person = Human()
# person.name = name
# person.weight = weight
# 새로운 사람정보를 추가할 때마다 
# 이렇게 반복해서 적기 힘드니 함수를 만들자

def create_human(name, weight):
  person = Human()
  person.name = name
  person.weight = weight
  return person

Human.create = create_human
person = Human.create("철수", 60.5)

def eat(person):
  person.weight += 0.1
  print("{}가 먹어서 {}kg이 되었습니다".format(person.name, person.weight))

def walk(person):
  person.weight -= 0.1
  print("{}가 걸어서 {}kg이 되었습니다".format(person.name, person.weight))

Human.eat = eat
Human.walk = walk

#메소드 호출
person.walk()
person.eat()
person.walk()
>>>
철수가 걸어서 60.4kg이 되었습니다
철수가 먹어서 60.5kg이 되었습니다
철수가 걸어서 60.4kg이 되었습니다
profile
서현이의 코드 생활 ദ്ദി ( ᵔ ᗜ ᵔ )

0개의 댓글