๐ [Python] self ์ง๊ณ ๋์ด๊ฐ๊ธฐ!
ํญ์ ์ฐ๋
self
์ ๋๋ก ์๊ณ ์ฐ์
self์ ์ญํ ?
self
๋ ํด๋์ค์ ๋ฉ์๋์์ ํด๋น ๋ฉ์๋๊ฐ ์ํ ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํค๋ ๋ณ์์ด๋ค.
๊ฐ์ฒด๋ฅผ ์์ฑํ ๋ ํด๋์ค์ ์ธ์คํด์ค๋ฅผ ์๋์ผ๋ก ์ ๋ฌํ๋ฏ๋ก, ํด๋์ค์ ๋ชจ๋ ๋ฉ์๋๋ ์ฒซ ๋ฒ์งธ ๋งค๊ฐ๋ณ์๋ก self
๋ฅผ ๊ฐ์ ธ์ผ ํ๋ค.
์ฆ, self
๋ฅผ ํตํด ๋ฉ์๋๋ ๊ฐ์ฒด์ ์์ฑ์ ์ ๊ทผํ๊ณ , ์ํ๋ฅผ ๋ณ๊ฒฝํ ์ ์๋ ๊ฒ์ด๋ค.
์์ ์ฝ๋
class Car:
def __init__(self, brand, model):
self.brand = brand
self.model = model
self.mileage = 0 # ์ด๊ธฐ ์ฃผํ ๋ง์ผ๋ฆฌ์ง๋ 0์ผ๋ก ์ค์ ํฉ๋๋ค.
def drive(self, distance):
self.mileage += distance
print(f"{self.brand} {self.model}์ด(๊ฐ) {distance}๋ง์ผ ์ด์ ํ์ฌ ์ด ์ฃผํ ๋ง์ผ๋ฆฌ์ง๋ {self.mileage}๋ง์ผ์
๋๋ค.")
def honk(self):
print(f"{self.brand} {self.model}์ด(๊ฐ) ์ธต์ธต ํ๊ณ ๊ฒฝ์ ์ ์ธ๋ฆฝ๋๋ค.")
# Car ํด๋์ค์ ์ธ์คํด์ค ์์ฑ
my_car = Car("Toyota", "Corolla")
# drive ๋ฉ์๋ ํธ์ถ
my_car.drive(50)
my_car.drive(30)
# honk ๋ฉ์๋ ํธ์ถ
my_car.honk()
##### ์ถ๋ ฅ #####
# Toyota Corolla์ด(๊ฐ) 50๋ง์ผ ์ด์ ํ์ฌ ์ด ์ฃผํ ๋ง์ผ๋ฆฌ์ง๋ 50๋ง์ผ์
๋๋ค.
# Toyota Corolla์ด(๊ฐ) 30๋ง์ผ ์ด์ ํ์ฌ ์ด ์ฃผํ ๋ง์ผ๋ฆฌ์ง๋ 80๋ง์ผ์
๋๋ค.
# Toyota Corolla์ด(๊ฐ) ์ธต์ธต ํ๊ณ ๊ฒฝ์ ์ ์ธ๋ฆฝ๋๋ค.
- Car ํด๋์ค ์ ์ โ brand, model, mileage ์์ฑ
__init__()
โ ๊ฐ์ฒด๊ฐ ์์ฑ๋ ๋ ํธ์ถ๋๋ ์ด๊ธฐํ ๋ฉ์๋ โ ๊ฐ์ฒด์ ์์ฑ์ ์ด๊ธฐํํจdrive()
โ ์ฃผํ ๊ฑฐ๋ฆฌ๋ฅผ ๋์ & ๋ง์ผ๋ฆฌ์ง ์ ๋ฐ์ดํธ โself
๋ฅผ ์ฌ์ฉํด ์ธ์คํด์ค ๋ณ์์ ์ ๊ทผํจhonk()
โ ๊ฒฝ์ ์ธ๋ฆฌ๊ธฐ
self ์ญํ ์์ฝ
self
๋ ํด๋์ค์ ์ธ์คํด์ค๋ฅผ ๊ฐ๋ฆฌํค๋ ํน๋ณํ ํค์๋- ํด๋์ค์ ๋ฉ์๋๋ ์ฒซ ๋ฒ์งธ ๋งค๊ฐ๋ณ์๋ก
self
๋ฅผ ๊ฐ์ ธ์ผ ํจ(์ ์ ๋ฉ์๋ ์ ์ธ) self
๋ฅผ ํตํด ๊ฐ์ฒด์ ์์ฑ์ ์ ๊ทผํ๊ณ ๊ฐํ๋ฅผ ๋ณ๊ฒฝํ ์ ์์
๋๊ธ๋จ๊ธฐ๊ธฐ