๐Ÿ“‚Class

๐Ÿ“ŒClass๋ž€?

์„œ๋กœ ๊ด€๋ จ์„ฑ์ด ํฐ ๋ฐ์ดํ„ฐ(attribute)์™€ ํ•จ์ˆ˜(methods)๋ฅผ ํ•œ ๋ฐ ๋ฌถ๋Š” ํ–‰์œ„
ํด๋ž˜์Šค์˜ ํ•„์š”์„ฑ) ๊ฐ™์€ ๊ธฐ๋Šฅ์˜ ๊ฐœ๋ณ„์ ์ธ ํ•จ์ˆ˜๋ฅผ ๋งค๋ฒˆ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ํด๋ž˜์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ  ๊ทธ๊ฒƒ์— ๋Œ€ํ•œ ๊ฐ์ฒด๋ฅผ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•จ.

๊ณผ์ž ํ‹€ - class, ๊ณผ์ž ํ‹€๋กœ ๋งŒ๋“ค์–ด์ง„ ๊ณผ์ž - object ์— ๋Œ€์‘
๋™์ผํ•œ ํด๋ž˜์Šค๋กœ ๋งŒ๋“  ๊ฐ์ฒด๋“ค์€ ์„œ๋กœ ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋Š”๋‹ค.

ํŠน์ • class ๋กœ๋ถ€ํ„ฐ ๋งŒ๋“ค์–ด์ง€๋Š” ๊ฐ์ฒด๋“ค์˜ ๋ฐ์ดํ„ฐ์™€ ํ•จ์ˆ˜๋Š” ๊ฐ๊ฐ ๋ฉค๋ฒ„ ๋ฐ์ดํ„ฐ์™€ ๋ฉค๋ฒ„ ๋ฉ”์†Œ๋“œ๋ผ๊ณ  ํ•จ.

๐Ÿ“ŒClass ์ƒ์„ฑํ•˜๊ธฐ

๊ธฐ๋ณธ๊ตฌ์กฐ

class FourCal:
	pass #์•„๋ฌด๊ฒƒ๋„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š๋Š” ๋ฌธ๋ฒ•. ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ธฐ๋Šฅ์€ ์žˆ์Œ.
a=FourCal() #a๋Š” FourCal class์˜ ๊ฐ์ฒด
type(a) # FourCal์˜ ์ธ์Šคํ„ด์Šค์ž„์„ ์ถœ๋ ฅํ•ด์คŒ.

a=calculator()
#a๋Š” ๊ฐ์ฒด์ด์ž ํด๋ž˜์Šค calculator์˜ ์ธ์Šคํ„ด์Šค์ž„.

๐Ÿ“ŒClass ๊ด€๋ จ ์šฉ์–ด

  • method class ์•ˆ์— ๊ตฌํ˜„๋œ ํ•จ์ˆ˜
    method ํ˜ธ์ถœ ๋ฐฉ๋ฒ•
    (1) ํด๋ž˜์Šค์ด๋ฆ„.method : self๋ฅผ ๋ฐ˜๋“œ์‹œ ์ „๋‹ฌ
    (2) ๊ฐ์ฒด.method : self๋ฅผ ๋ฐ˜๋“œ์‹œ ์ƒ๋žต

  • self ๊ฐ์ฒด์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๊ฐ–๋Š” ๋ณ€์ˆ˜
    method์˜ ์ฒซ๋ฒˆ์งธ ๋งค๊ฐœ๋ณ€์ˆ˜(self)์—๋Š” ๊ทธ method๋ฅผ ํ˜ธ์ถœํ•œ ๊ฐ์ฒด๊ฐ€ ์ „๋‹ฌ๋จ. self ๋ง๊ณ  ๋‹ค๋ฅธ ์ด๋ฆ„ ์‚ฌ์šฉํ•ด๋„ ๋จ.
    class ์•ˆ์—์„œ ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•  ๋•Œ์—๋Š” ๋ถ™์—ฌ์ฃผ์–ด์•ผ ํ•˜๋Š”๋ฐ ํด๋ž˜์Šค ๋ฐ–์—์„œ method๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ์—๋Š” python์ด ์ž๋™์œผ๋กœ ๋ถ™์—ฌ์ฃผ๋ฏ€๋กœ ์ž…๋ ฅ๊ฐ’์— ๋„ฃ์–ด์ค„ ํ•„์š” ์—†์Œ.

  • ๊ฐ์ฒด๋ณ€์ˆ˜ ๊ฐ์ฒด์— ์ƒ์„ฑ๋˜๋Š” ๊ฐ์ฒด๋งŒ์˜ ๋ณ€์ˆ˜ ๋ฐ‘ ์˜ˆ์‹œ์˜ first
    ํด๋ž˜์Šค๋กœ ๋งŒ๋“  ๊ฐ์ฒด์˜ ๊ฐ์ฒด ๋ณ€์ˆ˜๋Š” ๋‹ค๋ฅธ ๊ฐ์ฒด์˜ ๊ฐ์ฒด๋ณ€์ˆ˜์™€ ๋ฌด๊ด€ํ•˜๊ฒŒ ์›๋ž˜ ๊ฐ’์„ ์œ ์ง€ํ•จ.

class FourCal(): #์‚ฌ์น™์—ฐ์‚ฐ ํด๋ž˜์Šค
	def setdata(self, first, second): #๊ฐ์ฒด์— ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ํ• ๋‹น method๋ฅผ ํ• ๋‹นํ•œ ๊ฐ์ฒด๊ฐ€ ์ „๋‹ฌ๋จ.
    	self.first=first #setdata(3,4)ํ–ˆ์„ ๋•Œ a.first=3์ด ๋˜๋„๋ก
        #a.first=3 a ๊ฐ์ฒด์— ๊ฐ์ฒด๋ณ€์ˆ˜ first๊ฐ€ ์ƒ์„ฑ๋˜๊ณ  ๊ฐ’ 4๊ฐ€ ์ €์žฅ
        self.second=second 
    def add(self):
        result=self.first+self.second 
        return result
        #self.fist ๋งค๊ฐœ๋ณ€์ˆ˜์— ํฌํ•จํ•˜๊ฑฐ๋‚˜ ๋‹ค์‹œ ์ง€์ •ํ•ด์ค„ ํ•„์š” ์—†์Œ. ์ด ํ•จ์ˆ˜ ์•ˆ์—์„œ setdata ํ•  ํ•„์š”๋„ ์—†์Œ.
    # ํ•จ์ˆ˜ ์‚ฌ์šฉํ•  ๋•Œ setdat๋ฅผ ๋จผ์ € ํ˜ธ์ถœํ–ˆ์œผ๋ฉด ๋งŒ๋“ค์–ด์ง„ a.first์™€ a.second๋Š” ๊ณต์œ ๋จ
    
# setdata๋ฅผ ๊ตณ์ด ๋งŒ๋“œ๋Š” ์ด์œ ) data๋ฅผ ํ•จ์ˆ˜ ํ˜ธ์ถœํ• ๋•Œ๋งˆ๋‹ค ์ž…๋ ฅํ•˜์ง€ ์•Š๊ณ  ํ•œ ๋ฒˆ ์ž…๋ ฅํ•˜๋ฉด ํ•จ์ˆ˜์— ๊ณตํ†ต์ ์œผ๋กœ ์ ์šฉ๋˜๋„๋ก
 
#class ์‚ฌ์šฉํ•ด๋ณด๊ธฐ       
a=FourCal(4,2)
a.first=4 # a ๊ฐ์ฒด์— ๊ฐ์ฒด๋ณ€์ˆ˜ first๊ฐ€ ์ƒ์„ฑ๋˜๊ณ  4๋ผ๋Š” ๊ฐ’์ด ์ €์žฅ๋จ.
b=FourCal(3,8)
b.first=3 # a๊ฐ์ฒด์˜ ๊ฐ์ฒด๋ณ€์ˆ˜ first๋Š” ์—ฌ์ „ํžˆ 4. 
  • ํด๋ž˜์Šค ๋ณ€์ˆ˜
    ํด๋ž˜์Šค ์•ˆ์—์„œ ์„ ์–ธ๋œ ๋ณ€์ˆ˜. ํด๋ž˜์Šค ์•ˆ์˜ ํ•จ์ˆ˜ ์•ˆ์˜ ๋ณ€์ˆ˜xx
    ํด๋ž˜์Šค์ด๋ฆ„.ํด๋ž˜์Šค๋ณ€์ˆ˜ ํ˜•ํƒœ๋กœ ์‚ฌ์šฉ๋จ.
class Myname:
	name='lee' #ํด๋ž˜์Šค ๋ณ€์ˆ˜ name
    
print(Myname.name) #'lee'๊ฐ€ ์ถœ๋ ฅ๋จ

๊ฐ์ฒด ๋ณ€์ˆ˜<->ํด๋ž˜์Šค ๋ณ€์ˆ˜: ํด๋ž˜์Šค ๋ณ€์ˆ˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋ฉด ๋ณ€๊ฒฝ๋œ ํด๋ž˜์Šค ๋ณ€์ˆ˜๋Š” ๊ทธ ํด๋ž˜์Šค๋กœ ๋งŒ๋“  ๋ชจ๋“  ๊ฐ์ฒด์— ๊ณต์œ ๋œ๋‹ค.

a=Myname()
b=Myname()
print(a.name) #'lee'์ถœ๋ ฅ
Myname.name='kim' #ํด๋ž˜์Šค ๋ณ€์ˆ˜ name์„ 'kim'์œผ๋กœ ๋ณ€๊ฒฝ
print(a.name) #'kim'์ถœ๋ ฅ
print(b.name) #'kim'์ถœ๋ ฅ

๋Œ€ํ‘œ์ ์œผ๋กœ ํด๋ž˜์Šค์—์„œ ๋งŒ๋“ค์–ด์ง€๋Š” ๊ฐ์ฒด์˜ ๊ฐฏ์ˆ˜ ์„ธ๊ธฐ์˜ ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉ๋จ.

class Student:
	#ํด๋ž˜์Šค๋ณ€์ˆ˜
    countStudent=0
    
    def __init__(self,givenid,givenname):
    self.id=givenid
    self.name=givenname
    Student.countStudent=Student.countStudent+1 #ํด๋ž˜์Šค๋ณ€์ˆ˜์ด๋ฏ€๋กœ student๋กœ์‹œ์ž‘

__init__์€ ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ๋งˆ๋‹ค ํ˜ธ์ถœ๋˜๋Š” ํ•จ์ˆ˜.
๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋ ๋•Œ๋งˆ๋‹ค countStudent 1์”ฉ ์ฆ๊ฐ€-> countStudent ์ถœ๋ ฅํ•˜๋ฉด ๋งŒ๋“ค์–ด์ง„ ๊ฐ์ฒด์˜ ๊ฐฏ์ˆ˜ ์…€ ์ˆ˜ ์žˆ์Œ.

ํด๋ž˜์Šค ๋ณ€์ˆ˜์™€ ๋™์ผํ•œ ์ด๋ฆ„์˜ ๊ฐ์ฒด ๋ณ€์ˆ˜๋ฅผ ์ƒ์„ฑํ–ˆ์„ ๋•Œ

๊ฐ์ฒด๋ณ€์ˆ˜๋Š” ํด๋ž˜์Šค๋ณ€์ˆ˜์™€ ๋™์ผํ•œ ์ด๋ฆ„์œผ๋กœ ์ƒ์„ฑ๊ฐ€๋Šฅ
Myname.name -> ํด๋ž˜์Šค ๋ณ€์ˆ˜ ํด๋ž˜์Šค์ด๋ฆ„.ํด๋ž˜์Šค๋ณ€์ˆ˜ ํ˜•ํƒœ
a.name() -> ๊ฐ์ฒด ๋ณ€์ˆ˜. ๊ฐ์ฒด.๊ฐ์ฒด๋ณ€์ˆ˜ ํ˜•ํƒœ

a.name='park'

Myname ํด๋ž˜์Šค์˜ name์ด ๋ฐ”๋€Œ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ a ๊ฐ์ฒด์— name ๊ฐ์ฒด ๋ณ€์ˆ˜๊ฐ€ ์ƒˆ๋กญ๊ฒŒ ์ƒ์„ฑ๋จ.
์ด๋Š” class์˜ ๊ฐ™์€ ์ด๋ฆ„์˜ ํด๋ž˜์Šค๋ณ€์ˆ˜ name์—๋Š” ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋Š”๋‹ค.

๋‹จ, ํด๋ž˜์Šค๋ณ€์ˆ˜์˜ ์ด๋ฆ„ ๋ณ€๊ฒฝ ์‹œ ๊ฐ์ฒด์˜ ๋ณ€์ˆ˜๋„ ๋ณ€๊ฒฝ๋จ

๐Ÿ“Œ์ƒ์„ฑ์ž(Constructor) : ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ ์ž๋™์œผ๋กœ ํ˜ธ์ถœ๋˜๋Š” method

์œ„ ์ฝ”๋“œ์—์„œ addํ•จ์ˆ˜๋Š” first์™€ second ๋ณ€์ˆ˜๋ฅผ ํ•„์š”๋กœ ํ•˜๋ฏ€๋กœ setdata ์ˆ˜ํ–‰ ์ „ addํ•จ์ˆ˜๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•จ.
๋ฉค๋ฒ„ attribute๋ฅผ ์ž๋™์œผ๋กœ ์ดˆ๊ธฐํ™”, ๊ฐ์ฒด๊ฐ€ ๋งŒ๋“ค์–ด์ง€๋ฉด ๋ฐ˜๋“œ์‹œ ํ˜ธ์ถœํ•ด์•ผ ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์ž๋™์œผ๋กœ ํ˜ธ์ถœํ•˜๋Š” ๋“ฑ์˜ ์—ญํ• 
๊ฐ์ฒด์— ์ดˆ๊นƒ๊ฐ’์„ ์„ค์ •ํ•ด์•ผ ํ•  ๋•Œ-> ์œ„ ์ฝ”๋“œ์ฒ˜๋Ÿผ method ํ˜ธ์ถœ๋ณด๋‹ค๋Š” ์ƒ์„ฑ์ž๋ฅผ ์ด์šฉ
(class ์•ˆ์˜ ํ•จ์ˆ˜๊ฐ€ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ’)

๊ธฐ๋ณธ๊ตฌ์กฐ

def __init__(self,first,second):
	self.first=first
    self.second=second
#๊ฐ์ฒด ์ƒ์„ฑ์‹œ ์ฐจ์ด์ 
a=FourCal() -> ์˜ค๋ฅ˜ ๋ฐœ์ƒ. ์ƒ์„ฑ์ž์˜ ๋งค๊ฐœ๋ณ€์ˆ˜ first์™€ second์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’์ด ์ „๋‹ฌ๋˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์—
a=FourCal(4,2) #__init__method๊ฐ€ ํ˜ธ์ถœ๋˜๋ฉด์„œ first์™€ second๋ผ๋Š” ๊ฐ์ฒด ๋ณ€์ˆ˜ ์ƒ์„ฑ

method ์ด๋ฆ„์„ __init__ ๊ฐ™์ด ์„ค์ •ํ•˜๋ฉด ์ž๋™์œผ๋กœ ์ƒ์„ฑ์ž๋กœ ์„ค์ •๋จ.
setdata์™€ ๋งค๊ฐœ๋ณ€์ˆ˜, ์ˆ˜ํ–‰๋ฌธ์€ ๋™์ผ.

  • ์ฃผ์˜ ์ƒ์„ฑ์ž ํ•จ์ˆ˜(init)๋Š” ๋‹ค๋ฅธ method์™€ ๋‹ฌ๋ฆฌ ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋˜๋Š” ์‹œ์ ์— ์ž๋™์œผ๋กœ ํ˜ธ์ถœ๋˜๋ฏ€๋กœ class์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ์ƒ์„ฑ์ž์˜ ๋งค๊ฐœ๋ณ€์ˆ˜์— ํ•ด๋‹นํ•˜๋Š” first์™€ second์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’์„ ๋ฐ˜๋“œ์‹œ ๊ฐ™์ด ์ „๋‹ฌํ•ด์ค˜์•ผ ํ•จ.
  • 'init() should return None'
    ์ƒ์„ฑ์ž๋Š” return๊ฐ’์„ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์—†์Œ.

๐Ÿ“Œํด๋ž˜์Šค์˜ ์ƒ์†(Inheritance)

์ƒˆ๋กœ์šด ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค ๋•Œ ๋‹ค๋ฅธ ํด๋ž˜์Šค์˜ ๊ธฐ๋Šฅ์„ ๋ฌผ๋ ค๋ฐ›์„ ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ
ํด๋ž˜์Šค์— ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝํ•˜๊ณ  ์‹ถ์€๋ฐ ๊ธฐ์กด ํด๋ž˜์Šค๊ฐ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ˜•ํƒœ๊ฑฐ๋‚˜ ์ˆ˜์ •์ด ๋˜์ง€ ์•Š๋Š” ์ƒํ™ฉ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

๊ธฐ๋ณธ๊ตฌ์กฐ)
class ์ƒˆ๋กœ์šด ํด๋ž˜์Šค ์ด๋ฆ„(์ƒ์†ํ•  ํด๋ž˜์Šค ์ด๋ฆ„)
์ƒˆ๋กœ์šด ํด๋ž˜์Šค๊ฐ€ () ์•ˆ์˜ ํด๋ž˜์Šค์˜ ๋ชจ๋“  ๊ธฐ๋Šฅ(methods)๊ณผ ๋ฐ์ดํ„ฐ(attribute)๋ฅผ ์ƒ์†ํ•จ. self.first์™€ self.second๋„ ๊ณต์œ ํ•จ. ์ถ”๊ฐ€ํ•ด์ค„ ํ•„์š” ์—†์Œ.

class newFourCal(Fourcal):
	pass
#Fourcal ํด๋ž˜์Šค์˜ add, mod ๋“ฑ ๋ชจ๋“  ๊ธฐ๋Šฅ ์ˆ˜ํ–‰ ๊ฐ€๋Šฅ
a=newFourCal(4,2)
a.add() -> 6
  • super() ํ•จ์ˆ˜ : ํ•ด๋‹น ํด๋ž˜์Šค์˜ ๋ถ€๋ชจ ํด๋ž˜์Šค๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ํ•จ์ˆ˜
    super().๋ถ€๋ชจํด๋ž˜์Šค์˜ ๋ฉ”์†Œ๋“œ() -> ๋ถ€๋ชจ ํด๋ž˜์Šค์˜ ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•˜์—ฌ ๋ถ€๋ชจ ํด๋ž˜์Šค์˜ method๋ฅผ ์ž์‹ ํด๋ž˜์Šค์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•จ. str, init๊ณผ ๊ฐ™์€ ๊ฒƒ
    ๋ถ€๋ชจ ํด๋ž˜์Šค์˜ instance ์†์„ฑ์€ ์ž์‹ ํด๋ž˜์Šค์— ์ƒ์†๋˜์ง€ ์•Š๋Š”๋‹ค

๐Ÿ“Œ Method Overriding(๋ฎ์–ด์“ฐ๊ธฐ)

์˜๋ฏธ: ๋ถ€๋ชจ ํด๋ž˜์Šค์— ์žˆ๋Š” method๋ฅผ ๋™์ผํ•œ ์ด๋ฆ„์œผ๋กœ ๋‹ค์‹œ ๋งŒ๋“œ๋Š” ๊ฒƒ, ์ฆ‰ ๋ฎ์–ด์“ฐ๊ธฐ.
๋ฎ์–ด์“ด ์ดํ›„์— method๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ๋ถ€๋ชจ ํด๋ž˜์Šค์˜ method๊ฐ€ ์•„๋‹Œ overridingํ•œ method๊ฐ€ ํ˜ธ์ถœ๋จ.

๐Ÿ“Œ str method:

(1) ํ•ด๋‹น ํด๋ž˜์Šค๋กœ ๋งŒ๋“ค์–ด์ง„ ๊ฐ์ฒด(instance) ์ž์ฒด๋ฅผ ์ถœ๋ ฅํ•  ๋•Œ ๋ฌธ์ž์—ด๋กœ ์„ค๋ช… (class๊ฐ€ admin ํŽ˜์ด์ง€์—์„œ ์–ด๋–ป๊ฒŒ ์ถœ๋ ฅ๋˜๋Š”์ง€๋ฅผ ์ •์˜
print(๊ฐ์ฒด์ด๋ฆ„)->str method๊ฐ€ ํ˜ธ์ถœ๋˜์–ด ๋ฌธ์ž์—ด๋กœ ๊ฐ์ฒด์˜ ์ •๋ณด(ํด๋ž˜์Šค ์ด๋ฆ„,์ €์žฅ์œ„์น˜)๋ฅผ ๋ฐ˜ํ™˜ํ•จ.
(2) ๋ณต์žกํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ ๋ฒˆ์— ์ถœ๋ ฅํ•˜๊ณ  ์‹ถ์„ ๋•Œ-> print(๊ฐ์ฒด์ด๋ฆ„)์œผ๋กœ init์—์„œ ๊ทœ์ •ํ•œ ๋ณ€์ˆ˜์˜ ์ถœ๋ ฅ ํ˜•์‹์„ ์ง€์ •

__str__() ํ•จ์ˆ˜ ์ด์šฉํ•˜๊ธฐ
class Student:
    def __init__(self, givenID, givenName):
        self.id = givenID
        self.name = givenName

    def __str__(self): #print(๊ฐ์ฒด์ด๋ฆ„) ํ–ˆ์„ ๋•Œ ๋ฐ˜ํ™˜๋˜๋Š” ๋ฌธ์ž์—ด์˜ ์ •๋ณด ์•Œ๋ ค์คŒ.
        msg = "id:{}, name:{}".format(self.id, self.name)
        return msg

student1 = Student(20190001, "Harry Potter") 
print(student1) #student1.__str__()๊ณผ str(student1)์€ ๊ธฐ๋Šฅ์ด ๊ฐ™์Œ.

#getID์™€ getName ํ•จ์ˆ˜ ์ •์˜ ์•ˆ ํ•ด์ค˜๋„ ์˜ค๋ฅ˜ ๋ฐœ์ƒ ์•ˆํ•˜๋Š”๋ฐ..? return์„ ๊ผญํ•ด์ค˜์•ผ ํ•˜๋‚˜

๐Ÿ“Œ Private Attribute

๋ฉค๋ฒ„ attribute์˜ ์ด๋ฆ„
๊ฐ•์ œ์ ์œผ๋กœ attribute์„ ์ง์ ‘ ์ฝ๊ณ  ์“ฐ๋Š” ๊ฒƒ์„ ๋ง‰์•„์คŒ. ์ง์ ‘์ ์œผ๋กœ ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์„ ๋ง‰๊ณ  ๋ฉค๋ฒ„ method๋ฅผ ํ†ตํ•ด์„œ๋Š” ์ฝ๊ณ  ์“ธ ์ˆ˜ ์žˆ์Œ.
self.id, countStudent ์ด๋Ÿฐ ์‹์œผ๋กœ ๋ฉค๋ฒ„ attribute์˜ ์ด๋ฆ„ ์•ž์— __ ๋ฅผ ํ•˜๋Š” ํ˜•์‹

๐Ÿ“Œ ํฌํ•จ๊ด€๊ณ„(has-a realationship)

์ƒ์† ๊ด€๊ณ„(x)
A ํด๋ž˜์Šค์˜ ์†์„ฑ์— instance๋ฅผ ๋„ฃ์–ด์„œ Aํด๋ž˜์—์„œ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ๋•Œ Bํด๋ž˜์Šค์˜ ๊ฐ์ฒด๋ฅผ ๋ฉค๋ฒ„ attribute๋กœ ๊ฐ€์ง€๋ฉด Aํด๋ž˜์Šค์™€ Bํด๋ž˜์Šค๋ฅผ ํฌํ•จ๊ด€๊ณ„๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

class Student:
	def __init__:
    def ์–ด์ฉŒ๊ตฌ์ €์ฉŒ๊ตฌ..
    
class Department:
    def __init__(self):
        memberStudent = Student()
profile
์•„์ด์ฟ 

0๊ฐœ์˜ ๋Œ“๊ธ€

Powered by GraphCDN, the GraphQL CDN