x = 10 # 정수형 변수
x = "Hello" # 문자열로 재할당
x
는 처음에 정수형으로 선언되었지만, 이후에 문자열로 재할당되었습니다.변수의 타입이 런타임 시점에 결정되기 때문에 가능
합니다.객체가 동작을 아래의 요소로 결정
하는 프로그래밍 방식파이썬에서 덕 타이핑을 사용하면 다음과 같이 코드가 작성될 수 있습니다:
class Dog:
def sound(self):
return "Bark"
class Cat:
def sound(self):
return "Meow"
def make_sound(animal):
return animal.sound()
dog = Dog()
cat = Cat()
print(make_sound(dog)) # 출력: Bark
print(make_sound(cat)) # 출력: Meow
make_sound
함수는 Dog
나 Cat
객체가 어떤 타입인지 상관하지 않고, sound
메서드를 가지고 있으면 이를 호출합니다.유연성:
간결한 코드:
다음은 덕 타이핑을 활용한 또 다른 예시입니다:
class Bird:
def fly(self):
print("Bird is flying")
class Airplane:
def fly(self):
print("Airplane is flying")
def let_it_fly(flying_object):
flying_object.fly()
bird = Bird()
airplane = Airplane()
let_it_fly(bird) # 출력: Bird is flying
let_it_fly(airplane) # 출력: Airplane is flying
let_it_fly
함수는 fly
메서드를 가지고 있는 객체라면 어떤 객체든 받아들일 수 있습니다. 이는 객체의 타입이 무엇인지 명시할 필요 없이, 해당 객체가 어떤 행동(메서드)을 할 수 있는지에만 집중합니다.객체의 타입에 의존하지 않고
객체의 동작에 집중하게 하여
간결한 코드를 작성할 수 있게 합니다.