📍클래스 및 메서드 정의
class ClassName:
def method_name(self, other_parameters):
body_of_method
- 메서드의 첫 번째 매개변수(self)는 현재 인스턴스를 나타낸다
- self 예시
class Dog:
years = 0
def dog_years(self):
return self.years * 7
fido = Dog()
fido.years = 3
print(fido.dog_years()) # 21
- 클래스 예시 1
class Person:
apples = 0
ideas = 0
johanna = Person()
johanna.apples = 1
johanna.ideas = 1
martin = Person()
martin.apples = 2
martin.ideas = 1
def exchange_apples(you, me):
temp = you.apples
you.apples = me.apples
me.apples = temp
return you.apples, me.apples
def exchange_ideas(you, me):
total = you.ideas + me.ideas
you.ideas = total
me.ideas = total
return you.ideas, me.ideas
exchange_apples(johanna, martin)
print("Johanna has {} apples and Martin has {} apples".format(johanna.apples, martin.apples))
# Johanna has 2 apples and Martin has 1 apples
exchange_ideas(johanna, martin)
print("Johanna has {} ideas and Martin has {} ideas".format(johanna.ideas, martin.ideas))
# Johanna has 2 ideas and Martin has 2 ideas
📍특수 메서드
- __로 시작하고 끝난다
- 예) __init__ , __str__
1️⃣__init__
- 생성자 메서드
- 첫 매개변수는 해당 인스턴스를 가리키는 self가 되어야 함
2️⃣__str__
- 객체의 인스턴스가 print() 함수에 전달될 때 인쇄되는 방법을 정의할 수 있다
그렇지 않으면 메모리 주소가 출력
- 예시
class Apple:
def __init__(self, color, flavor):
self.color = color
self.flavor = flavor
def __str__(self):
return "This apple is {} and its flavor is {}".format(self.color, self.flavor)
jonagold = Apple("red", "sweet")
print(jonagold) # This apple is red and its flavor is sweet
📍Docstring 기능
- """ """ 사이에 입력
- 메서드 위에 커서를 올리면 나타나고, help 메서드로도 출력 가능
def to_seconds(hours, minutes, seconds):
"""시간, 분, 초를 입력받아 초로 변환하여 반환"""
return hours * 3600 + minutes * 60 + seconds
help(to_seconds)