
Class
๋ณ์์ ํจ์๋ฅผ ๋ชจ๋ ๊ฐ์ง๊ณ ์๋ ๊ฒ์ด Class์ด๋ค.
Class๋ ๊ฐ์ฒด๋ฅผ ๋ง๋ค๊ธฐ ์ํด์ ์ฌ์ฉ์ ํ๋ค.
๊ฐ์ฒด๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค.
๊ฐ์ฒด๋ณ์ = ํด๋์ค๋ช
()
๋ท๋ถ๋ถ์ ์๋ ํด๋์ค๋ช ()์ ์์ฑ์๋ผ๊ณ ๋ ๋ถ๋ฅธ๋ค.
์ด๋ ๊ฒ ๋ง๋ค์ด์ง ๊ฐ์ฒด ๋ณ์๋ฅผ ์ธ์คํด์ค๋ผ๊ณ ๋ ๋ถ๋ฅธ๋ค.
class BreadMold:
category = "ํฌ๋ฆผ๋นต"
bread = BreadMold()
# ์ฐธ์กฐ์ฐ์ฐ์.
print(bread.category)
์ด๋ ๊ฒ ๊ฐ์ฒด์ ์๋ ๋ณ์๋ฅผ ํธ์ถํด ์ฌ์ฉํ ์ ์๋ค.
์ฌ์ฉํ ๋ ๊ฐ์ฒด ๋ณ์ ๋ค์ ์ฐธ์กฐ ์ฐ์ฐ์. ์ ๋ถ์ฌ์ ์ฌ์ฉํ๋ ค๋ ํจ์๋ ๋ณ์๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
์ด๋ ๊ฒ ๋ง๋ค์ด์ง ๊ฐ์ฒด๋ ๊ฐ์ฒด ๊ณ ์ ์ ์์ฑ๋ ๊ฐ์ง ์ ์๋ค.
์๋ฅผ ๋ค์ด ์ ์ฝ๋์ ๊ฐ๊ฒฉ์ด๋ ์์ฑ์ ์ถ๊ฐํด๋ณด์.
class BreadMold:
# ์์ฑ == ์ผ๋ฐ์ ์ธ๋ณ์
category = "ํฌ๋ฆผ๋นต"
bread = BreadMold()
bread.price = 3000
# ์ฐธ์กฐ์ฐ์ฐ์.
print("{}์ ๊ฐ๊ฒฉ์ {}์
๋๋ค.".format(bread.category,bread.price))
์ด๋ ๊ฒ bread๊ฐ์ฒด์ ๊ณ ์ ํ ์์ฑ์ผ๋ก price๋ฅผ ์ถ๊ฐํด ์ฌ์ฉํ ์ ์๋ค.
๋ํ class๋ ํจ์๋ ๊ฐ์ง๊ณ ์์ ์ ์๋ค.
์ด๋ ๊ฒ class๊ฐ ๊ฐ์ง๊ณ ์๋ ํจ์๋ฅผ ๋ฉ์๋๋ผ๊ณ ๋ถ๋ฅธ๋ค.
class BreadMold:
category = "ํฌ๋ฆผ๋นต"
def make_bread():
print("๋นต์ ๋ง๋ค์ด ๋
๋๋ค.")
bread = BreadMold()
bread.make_bread()
→ Error
์ด๋ ๊ฒ BreadMold๋ผ๋ Class์์ make_bread๋ผ๋ ๋ฉ์๋๋ฅผ ๋ง๋ค์ด ๊ทธ ๋ฉ์๋๋ฅผ ์ถ๋ ฅํ๋ฉด Error๊ฐ ๋ฐ์ํ๋ค.
๊ทธ ์ด์ ๋ python์์๋ ์ปดํ์ผํ๋ฉด์ ๋ฉ์๋๋ฅผ ํธ์ถ ์ ๊ฐ์ฒด ๋ณ์๊ฐ ์ธ์ ๊ฐ์ผ๋ก ๋ค์ด๊ฐ๊ธฐ ๋๋ฌธ์ด๋ค.
ํด๊ฒฐ๋ฐฉ๋ฒ์ self๋ผ๋ ํค์๋๋ฅผ ์ฌ์ฉํด์ ํด๊ฒฐํ ์ ์๋ค.
class BreadMold:
category = "ํฌ๋ฆผ๋นต"
def make_bread(self):
print("๋นต์ ๋ง๋ค์ด ๋
๋๋ค.")
bread = BreadMold()
bread.make_bread()
→ ๋นต์ ๋ง๋ค์ด ๋
๋๋ค.
์ฌ์ค self๊ฐ ์๋ ๋ค๋ฅธ ์ด๋ฆ์ ๋ฃ์ด๋ ๊ฐ๋ฅํ์ง๋ง, ์๊ธฐ ์์ ์ ๊ฐ๋ฆฌํค๋ self๋ผ๋ ์ด๋ฆ์ ๋ฃ๋ ๊ฒ์ ๊ถ์ฅํ๋ค.
๊ฐ์ฒด
์ฌ์ค ์ด๋๊น์ง class๋ฅผ ๊ณ์ ์ฌ์ฉํด์๋ค.
int() , str() , float() , bool() , tuple()..... type()
์์ ๋ฐฐ์์๋ ๋ชจ๋ ๊ฒ์ด ๋ค class์๊ธฐ ๋๋ฌธ์ด๋ค.
number = 1
text = "a"
print(type(number))
print(type(text))
<class 'int'>
<class 'str'>
์ด๋ ๊ฒ ๋ณ์์ ํ์ ์ ์๋ ค์ฃผ๋ type์ ์ฌ์ฉํด์ ์ถ๋ ฅํด๋ณด๋ฉด type์์ class๊ฐ ๋ถ์ด์๋ค.
์ด๊ฒ์ด ์๋ฏธํ๋ ๊ฒ์ 1์ด๋ผ๋ ๋ฐ์ดํฐ๋ฅผ ํ์ฉํ ๋๋ intํ์ ์ธ์คํด์ค(๊ฐ์ฒด)๋ก ํ์ฉ์ ํด์๋ค๋ ๋ง์ด๋ค.
number = 1
a = 1
# id() = ๊ฐ์ฒด์ ์ฃผ์๊ฐ์ ๋ฐํ
print(id(number))
print(id(a))
print(id(1))
id()๋ ๊ฐ์ฒด์ ์ฃผ์ ๊ฐ์ ์ถ๋ ฅํด์ค๋ค.
์ด๋ ๊ฒ number๊ณผ a์ ๋ณ์์ 1์ ํ ๋นํด์ฃผ๊ณ ์ ์ํ 1์ id๊ฐ์ ์ถ๋ ฅํด์ฃผ๋ฉด ๋ชจ๋ ๊ฐ์ id๊ฐ ์ถ๋ ฅ์ด ๋๋ค.
์ด๊ฒ์ด ์๋ฏธํ๋ ๊ฒ์ 2๊ฐ์ ๋ณ์์ ์ ์ 1์ ๋ชจ๋ ๊ฐ์ ๊ฐ์ฒด๋ผ๋ ๋ง์ด๋ค.
number = 1
a = 1.0
print(isinstance(number,int))
→ True
print(isinstance(a,in))
→ False
isinstance()๋ ์์ ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ ๊ฐ์ฒด๋ฅผ ์ ๋ ฅํด์ฃผ๊ณ ๊ทธ ๋ค์ class๋ช ์ ์ ๋ ฅํด์ฃผ๋ฉด ์ ๊ฐ์ฒด๊ฐ ๋ค ํด๋์ค๋ฅผ ์ด์ฉํด์ ๋ง๋ค์ด์ก๋์ง ํ์ธํด์ฃผ๋ ๋ด์ฅ ํจ์์ด๋ค.
text1 = 12345
text2 = "12345"
print(id(text1),id(text2))
์ด๋ ๊ฒ ์ ์ 12345์ ๋ฌธ์์ด 12345๋ฅผ ์ถ๋ ฅํด๋ณด๋ฉด ๋น์ฐํ ๋ค๋ฅธ ์ฃผ์ ๊ฐ์ด ์ถ๋ ฅ๋๋ค.
text1 = 12345
text2 = "12345"
print(id(text1),id(text2))
print(id(text1),id(int(text2)))
ํ์ง๋ง ๋ง์ฝ ๋ด์ฅ ํจ์๋ผ๋ฉด ๋ฌธ์์ด์ intํ์ผ๋ก ๋ณํ์ ํด๋ ์ฃผ์ ๊ฐ์ด ๋์ผํด์ผ ํ๋ค.
ํ์ง๋ง intํ์ผ๋ก ๋ณํ ํ text2์ ์ฃผ์ ๊ฐ์ ํ์ธํด๋ณด๋ฉด ์ฃผ์ ๊ฐ์ด ๋ฌ๋ผ์ง๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
์ฆ์จ , int๋ผ๋ class์์ ์ธ์ ๊ฐ์ผ๋ก text2๋ฅผ ๋ฐ์์ ์๋ก์ด ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ค๋ ๋ง์ด๋ค.
NameSpace - ์ด๋ฆ ๊ณต๊ฐ
class BreadMold:
category = "๋นต"
bread1 = BreadMold()
bread2 = BreadMold()
bread3 = BreadMold()
bread1.price = 3000
bread2.category = "๋ถ์ด๋นต"
bread3.category = "์์ด๋นต"
print(bread1.category,bread2.category,bread3.category)
→ ๋นต ๋ถ์ด๋นต ์์ด๋นต
์ด๋ ๊ฒ BreadMold๋ผ๋ class๋ก 3๊ฐ์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ 2๋ฒ 3๋ฒ ๊ฐ์ฒด์์๋ category๋ฅผ ๋ณ๊ฒฝํ์๋ค.
๊ทธ๋ฆฌ๊ณ bread1 ๊ฐ์ฒด์์๋ pirce๋ผ๋ ๋ณ์์ 3000์ด๋ผ๋ ๊ฐ์ ํ ๋นํด์ฃผ์๋ค.
๊ทธ๋ฆฌ๊ณ ์ถ๋ ฅ์ ํ์ ์ ๊ฐ๊ฐ ๋ค๋ฅธ ๋นต์ด ์ถ๋ ฅ์ด ๋๋ค.
์ด ๋ง์ ๊ฐ์ ํด๋์ค๋ฅผ ์ฐธ์กฐํ์์ง๋ง ์๋ก ๋ค๋ฅธ ๊ฐ์ฒด์ด๊ธฐ ๋๋ฌธ์ ์๋ก์๊ฒ ์ํฅ์ ์ฃผ์ง ์๋๋ค.

# dir() ์ด๋ฆ๊ณต๊ฐ์ ์๋ ๋ชจ๋ ์์ฑ์ ๋ฆฌ์คํธ๋ก ๋ฐํ
print(dir(bread1))
print(dir(bread2))
print(dir(BreadMold))
dir() ์ด๋ฆ ๊ณต๊ฐ์ ์๋ ๋ชจ๋ ์์ฑ์ ๋ฆฌ์คํธ๋ก ๋ฐํํด์ค๋ค,
dir()๋ก bread1๊ณผ bread2์ ์์ฑ์ ์ถ๋ ฅํด๋ณด๋ฉด bread1์๋ price๊ฐ ์์ง๋ง bread2์๋ price๊ฐ ์๋ค.
๋ง์ฐฌ๊ฐ์ง๋ก BreadMold Class ๋ํ price๊ฐ ์๋ค.
__init__ ์์ฑ์ ๋ฉ์๋
๊ฐ์ฒด ๋ณ์ = ํด๋์ค๋ช ()์์ ๊ดํธ()๋ฅผ ์์ฑ์๋ผ๊ณ ๋ถ๋ฅธ๋ค.
class BreadMold:
category = "๋นต"
def __init__(self):
print("๋นต์ ๋ง๋ค์์ต๋๋ค.")
# __init__ ์์ฑ์ ๋ฉ์๋
bread1 = BreadMold()
→ ๋นต์ ๋ง๋ค์์ต๋๋ค.
์์ฑ์ ๋ฉ์๋๋ __init__์ด๋ค.
์์ฑ์ ๋ฉ์๋๋ ๊ฐ์ฒด๊ฐ ์์ฑ๋๋ ์๊ฐ ์คํ๋๋ ๋ฉ์๋์ด๋ค.
class BreadMold:
category = "๋นต"
def __init__(self, price):
self.price = price
print("๋นต์ ๋ง๋ค์์ต๋๋ค.")
# __init__ ์์ฑ์ ๋ฉ์๋
bread1 = BreadMold(3000)
print("์ฒซ๋ฒ์งธ ๋นต์ ๊ฐ๊ฒฉ์ {}์
๋๋ค.".format(bread1.price))
์ด๋ ๊ฒ ์์ฑํ๋ ๋์์ price ๊ฐ๊ฒฉ์ ๋ฃ์ด์ฃผ์๊ธฐ ๋๋ฌธ์ , ๋ฐ๋ก ๊ฐ์ฒด๋ฅผ ๋ณ๊ฒฝํด์ค ํ์๊ฐ ์๋ค.
๊ทธ๋ฆฌ๊ณ ์์ฑ์ ๋ฉ์๋์ ๋งค๊ฐ๋ณ์๋ฅผ ๋ฃ๊ณ , ์์ฑํ ๋ ์ธ์๋ฅผ ์ฃผ์ง ์์ผ๋ฉด Error๊ฐ ๋ฐ์ํ๋ค.
__del__ ์๋ฉธ์ ๋ฉ์๋
์์ฑ์ ๋ฉ์๋__init__์ ๊ฐ์ฒด๊ฐ ์์ฑ๋ ๋ ์คํํ๋ ๋ฉ์๋๋ผ๋ฉด __del__์ ๊ฐ์ฒด๊ฐ ์๋ฉธ๋ ๋ ์คํ๋๋ ๋ฉ์๋์ด๋ค.
์๋ฉธ์ ๋ฉ์๋ ๊ฐ์ ๊ฒฝ์ฐ์๋ ๋ด๊ฐ ์ฐธ์กฐํ๊ณ ์๋ ์ด๋ค ๊ฐ์ฒด๋ฅผ ๊ฐ์ฒด ๋ณ์๋ค์ด ๋ ์ด์ ์ฐธ์กฐํ๊ณ ์์ง ์์ ๋ ์คํ์ด ๋๋ค.
์ด๊ฑธ ๋ ํผ๋ฐ์ค ์นด์ดํธ๋ผ๊ณ ํ๋๋ฐ ์ฝ๊ฒ ์๊ฐํ๋ฉด ๋ ํผ๋ฐ์ค ์นด์ดํธ๊ฐ 0์ด ๋๋ฉด ์๋ฉธ์ ๋ฉ์๋๊ฐ ์คํ์ด ๋๋ค.
class BreadMold:
category = "๋นต"
def __init__(self,category , price):
self.category = category
self.price = price
print("๋นต์ ๋ง๋ค์์ต๋๋ค.")
def __del__(self):
print("๋นต์ด ์์ด์ก์ต๋๋ค.")
# __init__ ์์ฑ์ ๋ฉ์๋
bread1 = BreadMold("๋ถ์ด๋นต" , 3000)
bread1 = BreadMold("๋นต" , 1000)
print("์ฒซ๋ฒ์งธ ๋นต์ ๊ฐ๊ฒฉ์ {}์
๋๋ค.".format(bread1.price))
↓
๋นต์ ๋ง๋ค์์ต๋๋ค.
๋นต์ ๋ง๋ค์์ต๋๋ค.
๋นต์ด ์์ด์ก์ต๋๋ค.
์ฒซ๋ฒ์งธ ๋นต์ ๊ฐ๊ฒฉ์ 1000์
๋๋ค.
๋นต์ด ์์ด์ก์ต๋๋ค.
๊ฐ์ฒด bread1์ด ๋ ๋ฒ ์์ฑ์ด ๋๋ฉด์ ์์ฑ์ ๋ฉ์๋๋ฅผ ๋ ๋ฒ ํธ์ถํ๋ค.
๊ทธ๋ฆฌ๊ณ bread1์ด ์๋ก ์์ฑ๋ ๋ ๊ธฐ์กด์ ์๋ bread1์ด ์ฐธ์กฐํ๋ ๊ฒ ์์ด์ง๋ฉด์ ๋ ํผ๋ฐ์ค ์นด์ดํธ๊ฐ 0์ด ๋๊ธฐ ๋๋ฌธ์,
์๋ฉธ์ ๋ฉ์๋๋ฅผ ํธ์ถํ๋ค.
๊ทธ๋ฆฌ๊ณ print๋ฌธ์ด ์คํ์ด ๋๊ณ , print๋ฌธ์ด ๋๋๋ฉด์ ํ๋ก๊ทธ๋จ์ด ์ข ๋ฃ๊ฐ ๋๊ธฐ ๋๋ฌธ์ ์๋ฉธ์ ๋ฉ์๋๋ฅผ ํธ์ถํ๋ค.
print(bread1)
→ <__main__.BreadMold object at 0x000002176D5BFFD0>
๊ทธ๋ฆฌ๊ณ bread1์ ์ถ๋ ฅ์ ํ๋ฉด bread1์ด๋ผ๋ ๊ฐ์ฒด์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๊ฐ ๋์จ๋ค.
๊ฐ์ฒด๋ฅผ ์ถ๋ ฅํ์ ๊ฒฝ์ฐ์๋ ๊ฐ์ฒด์ ํด๋์ค์ __str__์ด๋ผ๋ ๋ฉ์๋๊ฐ ์ถ๋ ฅ์ด ๋๋ค.
__str__
__str__๋ฉ์๋๋ ๊ฐ์ฒด๋ฅผ ๋ฌธ์์ด๋ก ๋ฐํํ์ ๋ ์ถ๋ ฅ ๊ฐ์ ์ง์ ํด์ค ์ ์๋ ๋ฉ์๋์ด๋ค.
class BreadMold:
category = "๋นต"
def __init__(self , category , price):
self.category = category
self.price = price
print("๋นต์ ๋ง๋ค์์ต๋๋ค.")
def __str__(self):
return "์ฒซ๋ฒ์งธ ๋นต์ ๊ฐ๊ฒฉ์ {}์
๋๋ค.".format(bread1.price)
def __del__(self):
print("๋นต์ด ์์ด์ก์ต๋๋ค.")
bread1 = BreadMold("๋ถ์ด๋นต" , 3000)
print(bread1)
→ ์ฒซ๋ฒ์งธ ๋นต์ ๊ฐ๊ฒฉ์ 3000์
๋๋ค.
์ด๋ ๊ฒ __str__ ๋ฉ์๋์ ์๊น print๋ฌธ์ ๋ฐํ ๊ฐ์ผ๋ก ์ง์ ์ ํด์ฃผ๋ฉด,
๋ฐฉ๊ธ ๊ฐ์ ๊ฒฝ์ฐ๋ ๊ฐ์ฒด์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ๊ฐ์ด ์ถ๋ ฅ์ด ๋์ง๋ง, ์ง๊ธ์ ๋นต์ ๊ฐ๊ฒฉ์ด ์ถ๋ ฅ์ด ๋๋ค.
__str__๋ฉ์๋๋ฅผ ์๋ก ์ํ๋ ๋ด์ฉ์ผ๋ก ์ ์ํด์ฃผ์๊ธฐ ๋๋ฌธ์ด๋ค.
์์
์์์ ์ด์ฉํ๋ฉด ์์ํ๋ ํด๋์ค์ ๋ชจ๋ ๊ฒ์ ์ฌ์ฉํ ์ ์๊ธฐ ๋๋ฌธ์ ์ฌ์ฌ์ฉ์ฑ์ด ๋งค์ฐ ์ข์์ง๋ค.
์์์ ํด์ฃผ๋ class๋ super class ๋๋ ๋ถ๋ชจ class๋ผ๊ณ ํ๊ณ ,
์์์ ๋ฌผ๋ ค๋ฐ๋ class๋ sub class ๋๋ ์์ class์ด๋ผ๊ณ ํ๋ค.
class ParentRestaurant:
def __init__(self, name, menu, recipe):
self.name = name
self.menu = menu
self.recipe = recipe
def __str__(self):
return "๊ฐ๊ฒ ์ด๋ฆ : {}, ๊ฐ๊ฒ์ ๋ฉ๋ด : {}, ๋ฉ๋ด์ ์กฐ๋ฆฌ๋ฒ : {}".format(self.name, self.menu, self.recipe)
def __del__(self):
pass
class ChildRestaurant(ParentRestaurant):
pass
restaurand_info = ChildRestaurant("์์์ ๊ฐ๊ฒ" , "๋ถ์ด๋นต" , "๋ถ์ด๋นต์ ๊ตฝ๋๋ค.")
print(restaurand_info)
→ ๊ฐ๊ฒ ์ด๋ฆ : ์์์ ๊ฐ๊ฒ, ๊ฐ๊ฒ์ ๋ฉ๋ด : ๋ถ์ด๋นต, ๋ฉ๋ด์ ์กฐ๋ฆฌ๋ฒ : ๋ถ์ด๋นต์ ๊ตฝ๋๋ค.
์์์ ๋ฐ์๋๋ ์์๋ฐ๋ ํด๋์ค ์ด๋ฆ ์์ ๊ดํธ ์์ ์์ํ๋ ํด๋์ค์ ์ด๋ฆ์ ๋ฃ์ผ๋ฉด ๋๋ค.
๊ทธ๋ ๊ฒ ์์ ์์ฑ์๋ฅผ ์ธ์คํด์คํ ํด์ ๊ฐ์ฒด๋ฅผ ์ถ๋ ฅํด๋ณด๋ฉด ์์ ํด๋์ค์๋ pass ๋ฐ์ ์์ง๋ง,
๋ถ๋ชจ ํด๋์ค๋ฅผ ๋ฌผ๋ ค๋ฐ๊ธฐ ๋๋ฌธ์ ๋ถ๋ชจ์ __str__์ด ์ถ๋ ฅ๋๋ ๊ฑธ ํ์ธํ ์ ์๋ค.
๋ํ ์์ ํด๋์ค์์ ์ ์ํ ์์ฑ์ ํ์ ํด๋์ค์์ ์๋ก ์ ์ํ ์ ์๋ค.
class ParentRestaurant:
price = 15000
def __init__(self, name, menu, recipe):
self.name = name
self.menu = menu
self.recipe = recipe
def __str__(self):
return "๊ฐ๊ฒ ์ด๋ฆ : {}, ๊ฐ๊ฒ์ ๋ฉ๋ด : {}, ๋ฉ๋ด์ ์กฐ๋ฆฌ๋ฒ : {}".format(self.name, self.menu, self.recipe)
def __del__(self):
pass
class ChildRestaurant(ParentRestaurant):
price = 20000
restaurant_info = ChildRestaurant("๋ง์ง" , "์คํ
์ดํฌ" , "์ ๊พธ์ฐ๋ฉด ๋จ")
print(restaurant_info.price)
→ 20000
์ด๋ ๊ฒ ๋ถ๋ชจ ํด๋์ค์์ price๋ 15000์ผ๋ก ๋์ด์์ง๋ง,
์์ ํด๋์ค์์ ์๋ก 20000์ผ๋ก ์ ์ํ๊ธฐ ๋๋ฌธ์, ๊ฐ์ฒด์ price๋ฅผ ์ถ๋ ฅํด๋ณด๋ฉด 20000์ด ์ถ๋ ฅ๋๋ ๊ฑธ ํ์ธํ ์ ์๋ค.
์ด๊ฒ์ ์ฌ์ ์ ์ฆ ์ค๋ฒ๋ผ์ด๋ฉ์ด๋ผ๊ณ ํ๋ค.
์ด๋ ๊ฒ ์ฌ์ ์ ์ค๋ฒ๋ผ์ด๋ฉ์ ๋ฉ์๋๋ ๊ฐ๋ฅํ๋ค.
class ParentRestaurant:
price = 15000
def __init__(self, name, menu, recipe):
self.name = name
self.menu = menu
self.recipe = recipe
def __str__(self):
return "๊ฐ๊ฒ ์ด๋ฆ : {}, ๊ฐ๊ฒ์ ๋ฉ๋ด : {}, ๋ฉ๋ด์ ์กฐ๋ฆฌ๋ฒ : {}".format(self.name, self.menu, self.recipe)
def __del__(self):
pass
class ChildRestaurant(ParentRestaurant):
price = 20000
def __init__ (self, name, menu, recipe, marketing):
ParentRestaurant.__init__(self,name,menu,recipe)
self.marketing = marketing
def __str__(self):
return super().__str__() + ", ๋ง์ผํ
๋ฐฉ๋ฒ : {}" .format(self.marketing)
restaurand_info = ChildRestaurant("๋ง์ง" , "์คํ
์ดํฌ" , "์ ๊พธ์ฐ๋ฉด ๋จ","์จ๋ผ์ธ")
print(restaurand_info)
→ ๊ฐ๊ฒ ์ด๋ฆ : ๋ง์ง, ๊ฐ๊ฒ์ ๋ฉ๋ด : ์คํ
์ดํฌ, ๋ฉ๋ด์ ์กฐ๋ฆฌ๋ฒ : ์ ๊พธ์ฐ๋ฉด ๋จ, ๋ง์ผํ
๋ฐฉ๋ฒ : ์จ๋ผ์ธ
์ด๋ ๊ฒ ์์ฑ์์ ์ถ๋ ฅ๋ฌธ์ ์ค๋ฒ ๋ผ์ด๋ฉํด์ ์ถ๋ ฅ์ ํ๊ฒ ๋๋ฉด ๊ฐ์ฒด๋ฅผ ์์ฑํ ๋๋ ์ธ์ ๊ฐ์ด ํ๋ ๋ ํ์ํ๊ณ ,
์ถ๋ ฅ๋ฌธ๋ ๋ง์ผํ ๋ฐฉ๋ฒ : ์จ๋ผ์ธ ์ด ์ถ๊ฐ๋ผ์ ์ถ๋ ฅ๋ ๊ฑธ ํ์ธํ ์ ์๋ค.
์ด๋ ๊ฒ ์์ฑ์์์ ๋ถ๋ชจ์ ๋งค๊ฐ๋ณ์๋ฅผ ๊ฐ์ ธ์ฌ ๋๋ ๋ถ๋ชจ์ ํด๋์ค ์ด๋ฆ.๋ฉ์๋ ์ด๋ฆ(๋ถ๋ชจ์ ๋งค๊ฐ๋ณ์)์ ํ์ฉํด ๊ฐ์ ธ์ค๊ณ ,
์ถ๊ฐํ ๋ณ์๋ ์๋ก ๋ฐ์ ์ ์ํด์ฃผ๋ฉด ๋๋ค.
๋ํ ๋ฐํ ๊ฐ ๋ํ super()๋ฅผ ํตํด ๋ถ๋ชจ์ ์ถ๋ ฅ๋ฌธ์ ๊ฐ์ ธ์ค๊ณ ์๋ก ์ถ๊ฐํ ๋ด์ฉ์ ์์ ์ถ๊ฐํด์ฃผ๋ฉด ๋๋ค.
issubclass()๋ผ๋ ํจ์๋ ์ด๋ค A๋ผ๋ ํด๋์ค์ B๋ผ๋ ํด๋์ค๊ฐ ์์ ๋
Aํด๋์ค๊ฐ Bํด๋์ค์ ํ์ ํด๋์ค์ธ์ง ํ์ธ์ด ๊ฐ๋ฅํ๋ค.
print(issubclass(ChildRestaurant,ParentRestaurant)) → True
print(issubclass(ParentRestaurant,ChildRestaurant)) → False
์ด๋ ๊ฒ ์ถ๋ ฅ๋ฌธ์ ํตํด ์์์ ๋ฐ๊ณ ์๋์ง ํ์ธ์ด ๊ฐ๋ฅํ๋ค.
๋ชจ๋
python์์ ๋ชจ๋์ ์ฝ๋๋ฅผ ์์ฑํด๋์ ํ์ผ์ด๋ค. .py๋ก ๋๋๋ ํ์ผ๋ค์ ๋ชจ๋์ด๋ผ๊ณ ํ๋ค.
๊ฐ๋จํ๊ฒ ๊ณ์ฐ๊ธฐ๋ฅผ ์์ ๋ก๋ค์ด ํ์ธํด๋ณด์.
def add(num1,num2):
print(num1 + num2)
def sub(num1,num2):
print(num1 - num2)
def times(num1,num2):
print(num1 * num2)
def dev(num1,num2):
print(num1 / num2)
์ ์ฝ๋๊ฐ ๋ค์ด๊ฐ ๋ชจ๋์ calculator.py์ด๋ค.
๊ทธ๋ฆฌ๊ณ ์ด ๋ชจ๋์ ์ฌ์ฉํ ๋ชจ๋์ calculator_un.py์ด๋ค.
๋ชจ๋์ ์ฌ์ฉํ ๋๋ import๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.
import ๋ชจ๋๋ช
import calculator
calculator.add(2,3) → 5
calculator.sub(20,10) → 10
calculator.times(10,2) → 20
calculator.dev(10,2) → 5.0
๊ทธ๋ฆฌ๊ณ ์ฌ์ฉํ ๋ชจ๋๋ช ์ด ๋๋ฌด ๊ธธ๊ฑฐ๋ ํ๋ฉด ์๋ก ์ง์ ํด์ค ์๋ ์๋ค.
import ๋ชจ๋๋ช as ์ฌ์ฉํ ๋ชจ๋๋ช
import calculator as c
c.add(1,1)
c.sub(2,1)
c.times(2,2)
c.dev(4,2)
ํน์ ๋ด๊ฐ ์ฌ์ฉํ๊ณ ์ถ์ ํจ์๋ง ๋ฐ๋ก ํธ์ถ์ด ์ ์ธ์ด ๊ฐ๋ฅํ๋ค.
๊ทธ๋ด ๋ fromํค์๋๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.
from calculator import add
add(10,12) → 22
์ด๋ ๊ฒ ํ์ํ ํจ์๋ง ๊ฐ์ ธ์์ ์ฌ์ฉํ ๊ฒฝ์ฐ ๋ฐ๋ก ํธ์ถ์ด ๊ฐ๋ฅํ๋ค.
๋ํ asํค์๋๋ฅผ ํตํด ์ด๋ฆ๋ ์๋ก ์ง์ ์ด ๊ฐ๋ฅํ๋ค.
from calculator import add as a
a(10,12) → 22
๋ํ , ํ์ํ ํจ์๊ฐ ๋ง์ ๊ฒฝ์ฐ ์ฝค๋ง(,)๋ฅผ ํตํด ์ฌ๋ฌ ๊ฐ์ ํจ์๋ ์ ์ธํ ์ ์๋ค.
from calculator import add , sub
add(10,12) → 22
sub(20,10) → 10'๐จ๏ธ Backend > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [Python]์์ธ ์ฒ๋ฆฌ (0) | 2022.09.03 |
|---|---|
| [Python]์ง์ญ๋ณ์ , ์ ์ญ๋ณ์ , ๋งค๊ฐ๋ณ์ (0) | 2022.09.02 |
| [Python]ํจ์ (0) | 2022.09.02 |
| [Python]for๋ฐ๋ณต๋ฌธ (0) | 2022.09.02 |
| [Python]while ๊ตฌ๋ฌธ ๋ฐ rangeํจ์ (0) | 2022.09.01 |