1.  ๊ฐ์ฒด

๐Ÿš€   ๊ฐœ๋ฐœ์„ ํ•˜๋‹ค ๋ณด๋ฉด ์ •์ˆ˜๋‚˜ ์‹ค์ˆ˜ ๋˜๋Š” ๋ฌธ์ž์—ด ๋“ฑ ๊ธฐ๋ณธ์ ์ธ ์ž๋ฃŒํ˜•์œผ๋กœ ํ‘œํ˜„ํ•˜๊ธฐ ํž˜๋“  ๊ฒƒ๋“ค์ด ์กด์žฌ
         โžก๏ธ  ์˜ˆ๋ฅผ ๋“ค์–ด ์–ด๋–ค ๊ฒŒ์‹œ๊ธ€์„ ํŒŒ์ด์ฌ์œผ๋กœ ํ‘œํ˜„์„ ํ•œ๋‹ค๋ฉด [๊ฒŒ์‹œ๊ธ€ ๋ฒˆํ˜ธ, ์ œ๋ชฉ, ์ž‘์„ฑ์ž, ๋น„๋ฐ€๋ฒˆํ˜ธ, ๋‚ด์šฉ, ์ตœ์ดˆ์ž‘์„ฑ์ผ์ž, ์ตœ์ข…์ˆ˜์ •์ผ์ž, ์กฐํšŒ์ˆ˜]๊ฐ€ ํ•„์š”ํ•œ๋ฐ ์ด๋ฅผ ์†์‰ฝ๊ฒŒ ๊ด€๋ฆฌ ํ•˜๋ ค๋ฉด 8๊ฐœ์˜ ํ•ญ๋ชฉ์„ ํ•˜๋‚˜์˜ ์ด๋ฆ„์„ ๊ฐ€์ง„ ๊ฐ์ฒด object๋กœ ๋งŒ๋“ค์–ด์„œ ์‚ฌ์šฉ

 


2. ํด๋ž˜์Šค

๐Ÿš€  ํด๋ž˜์Šค class๋ฅผ ํ•œ ๋งˆ๋””๋กœ ์ •์˜ํ•˜๋ฉด ๊ฐ์ฒด๋ฅผ ๋งŒ๋“œ๋Š” ๋„๊ตฌ
๐Ÿš€  ํ•˜๋‚˜์˜ ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค์–ด ๋‘๋ฉด ๊ทธ ํด๋ž˜์Šค๋ฅผ ํ†ตํ•ด์„œ (๋™์ผํ•œ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง„) ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค์ˆ˜ ์žˆ๋‹ค
        โžก๏ธ  ๊ฐ™์€ ํด๋ž˜์Šค๋กœ ๋งŒ๋“  ๊ฐ์ฒด๋ผ ํ•˜๋”๋ผ๋„ ๊ฐ์ฒด๋“ค์€ ์„œ๋กœ ๋‹ค๋ฅธ ๊ฐ’์„ ๊ฐ€์งˆ์ˆ˜ ์žˆ์Œ
        โžก๏ธ  ์ธ์Šคํ„ด์Šค instance ์—ญ์‹œ ํด๋ž˜์Šค๋ฅผ ์ด์šฉํ•ด์„œ ์ƒ์„ฑํ•œ ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฅดํ‚ค๋Š” ์šฉ์–ด

 

    ๐Ÿ’ก  ๊ฐ์ฒด์™€ ์ธ์Šคํ„ด์Šค์˜ ๋ฏธ๋ฌ˜ํ•œ ์ฐจ์ด
            a. ์™€ํ”Œ๋จธ์‹  ํด๋ž˜์Šค๋กœ ๋งŒ๋“  ์™€ํ”Œ์€ ๊ฐ์ฒด object
            b. ์™€ํ”Œ์€ ์™€ํ”Œ๋จธ์‹  ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค instance


1) ํด๋ž˜์Šค์˜ ๊ตฌ์„ฑ

๐Ÿ‘พ  ํด๋ž˜์Šค์˜ ๊ธฐ๋ณธ ๊ตฌ์„ฑ
    -  ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค์–ด๋‚ด๋Š” ํด๋ž˜์Šค๋Š” ๊ฐ์ฒด๊ฐ€ ๊ฐ€์ ธ์•ผ ํ•  ๊ฐ’๊ณผ ๊ธฐ๋Šฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ ํ•จ
         โ–ถ๏ธ  ๊ฐ’์€ ๋ณ€์ˆ˜, ๊ธฐ๋Šฅ์€ ํ•จ์ˆ˜
    -  ํด๋ž˜์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ณ€์ˆ˜๋Š”  a. ํด๋ž˜์Šค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒ์„ฑ๋œ ๋ชจ๋“  ์ธ์Šคํ„ด์Šค๋“ค์ด ๊ณต์œ ํ•˜๋Š” ๋ณ€์ˆ˜์ธ 'ํด๋ž˜์Šค ๋ณ€์ˆ˜'์™€
                                                    b. ๋ชจ๋“  ์ธ์Šคํ„ด์Šค๋“ค์ด ๊ฐœ๋ณ„์ ์œผ๋กœ ๊ฐ€์ง€๋Š” ๋ณ€์ˆ˜์ธ '์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜'๋กœ ๋ถ„๋ฆฌ๋จ
    -  ํด๋ž˜์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ํ•จ์ˆ˜๋Š” ๋ฉ”์†Œ๋“œ method๋ผ๊ณ  ํ•˜๊ณ 
         a) ํด๋ž˜์Šค ๋ฉ”์†Œ๋“œ b) ์ •์  ๋ฉ”์†Œ๋“œ c) ์ธ์Šคํ„ด์Šค ๋ฉ”์†Œ๋“œ๋กœ ๋ถ„๋ฆฌ


2) ํด๋ž˜์Šค ์ •์˜๋ฐฉ๋ฒ•

๐Ÿ‘พ class ํ‚ค์›Œ๋“œ๋กœ ํด๋ž˜์Šค๋ฅผ ์ •์˜
๐Ÿ‘พ ํด๋ž˜์Šค ์ด๋ฆ„์€ Upper Camel Case ๊ทœ์น™์„ ๋”ฐ๋ฆ„
๐Ÿ‘พ
ํŒŒ์ด์ฌ์€ ๋ณ€์ˆ˜๋‚˜ ํ•จ์ˆ˜์˜ ์ด๋ฆ„์„ ๋„ค์ด๋ฐํ•  ๋•Œ ์–ธ๋”๋ฐ”(_)๋ฅผ ์ด์šฉํ•ด ๋‹จ์–ด๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” Snake Case ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜์ง€๋งŒ

     ํด๋ž˜์Šค๋Š” Upper Camel Case ๊ทœ์น™์„ ๋”ฐ๋ฆ„
      ex. print + member : printmember 1) print_member 2) printMember 3) PrintMember

# ํด๋ž˜์Šค๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜•์‹์œผ๋กœ ์ •์˜
class ํด๋ž˜์Šค :
    ๋ณธ๋ฌธ

3. ๊ฐ์ฒด ์ƒ์„ฑ

# ํด๋ž˜์Šค๊ฐ€ ์ •์˜๋˜์—ˆ๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜•์‹์œผ๋กœ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑ
๊ฐ์ฒด = ํด๋ž˜์Šค()

# 2๊ฐœ์˜ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค๊ณ  ์‹ถ์œผ๋ฉด
๊ฐ์ฒด1 = ํด๋ž˜์Šค()
๊ฐ์ฒด2 = ํด๋ž˜์Šค()

# ํด๋ž˜์Šค ์ •์˜์™€ ๊ฐ์ฒด ์ƒ์„ฑ
class WaffleMachine : # WaffleMachine์ด๋ผ๋Š” ํด๋ž˜์Šค ์ •์˜
    pass  # ๋‚ด๋ถ€์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์ง€ ์•Š์„ ๋•Œ ์“ฐ์ž„

waffle1 = WaffleMachine()  # WaffleMachine ์ด๋ผ๋Š” ํด๋ž˜์Šค๋ฅผ ์ด์šฉํ•ด waffle์ด๋ผ๋Š” ๊ฐ์ฒด ์ƒ์„ฑ
waffle2 = WaffleMachine()

print(waffle1)  # <__main__.WaffleMachine object at 0x102beee60>
# ๋ฉ”๋ชจ๋ฆฌ์˜ 0x102beee60๋ฒˆ์ง€์— ์ €์žฅ๋œ WaffleMachine์˜ ๊ฐ์ฒด๋ผ๋Š” ์˜๋ฏธ
print(waffle2)

4. ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜์™€ ์ธ์Šคํ„ด์Šค ๋ฉ”์†Œ๋“œ

๐Ÿš€  ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋ž€ ํด๋ž˜์Šค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋งŒ๋“ค์–ด์ง€๋Š” ๋ชจ๋“  ์ธ์Šคํ„ด์Šค๋“ค์ด ๊ฐ๊ฐ ๋”ฐ๋กœ ์ €์žฅํ•˜๋Š” ๋ณ€์ˆ˜
      โšก๏ธ ๋ชจ๋“  ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋Š” self๋ผ๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ์•ž์— ๋ถ™์—ฌ์คŒ
๐Ÿš€  ์ธ์Šคํ„ด์Šค ๋ฉ”์†Œ๋“œ๋ž€ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”์†Œ๋“œ
      โšก๏ธ ์ธ์Šคํ„ด์Šค ๋ฉ”์†Œ๋“œ๋Š” ๋ฐ˜๋“œ์‹œ ์ฒซ ๋ฒˆ์งธ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ self๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผ ํ•จ

class Person :  # Person ํด๋ž˜์Šค๋ฅผ ์ •์˜
    # ์ฒซ ๋ฒˆ์งธ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ self์ด๋ฏ€๋กœ ์ธ์Šคํ„ด์Šค ๋ฉ”์†Œ๋“œ
    # ๋ชจ๋“  ์ธ์Šคํ„ด์Šค๋Š” who_am_i() ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Œ
    # ๋งค๊ฐœ๋ณ€์ˆ˜ self์—๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ์ธ์Šคํ„ด์Šค๊ฐ€ ์ „๋‹ฌ
    # self๋ฅผ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ๋งค๊ฐœ๋ณ€์ˆ˜์— ์‹ค์ œ๋กœ ์‚ฌ์šฉ๋  ๋ฐ์ดํ„ฐ๊ฐ€ ์ „๋‹ฌ
    def who_am_i(self, name, age, tel, address):
        # ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜ = ๋งค๊ฐœ๋ณ€์ˆ˜. ๋ชจ๋“  ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋Š” ์ตœ์ดˆ์— ๊ฐ’์ด ๋Œ€์ž…๋˜๋Š” ์‹œ์ ์— ์•Œ์•„์„œ ์ƒ์„ฑ.
        self.name = name
        self.age = age
        self.tel = tel
        self.address = address

boy = Person()  # ์ธ์Šคํ„ด์Šค boy๊ฐ€ ์ƒ์„ฑ. ํด๋ž˜์Šค์˜ ์ƒ์„ฑ์ž๊ฐ€ ํ˜ธ์ถœ
#print(boy.name)  # 'Person' object has no attribute 'name'
boy.who_am_i('john', 15, '123-1234', 'toronto')  #์ธ์Šคํ„ด์Šค ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ
print(boy.name)  # john
print(boy.age)  # 15
print(boy.tel)  # 123-1234
print(boy.address)  # toronto

# ํด๋ž˜์Šค์— ์—†๋Š” ์†์„ฑ๋„ ์ถ”๊ฐ€๊ฐ€ ๊ฐ€๋Šฅํ•จ. ๋‹ค๋ฅธ ์–ธ์–ด์˜ ๊ฐ์ฒด์™€๋Š” ๋‹ค๋ฅธ ๋ฐฉ์‹.
boy.email = 'test@test.com'
print(boy.email)  # test@test.com

 

 


 

5. ์ƒ์„ฑ์ž  constructor

 

๐Ÿš€  ํด๋ž˜์Šค ์ด๋ฆ„๊ณผ ๊ฐ™์€ ํ•จ์ˆ˜๋ฅผ ์ƒ์„ฑ์ž๋ผ๊ณ  ํ•œ๋‹ค.  

๐Ÿš€  ๊ฐ’์„ ๊ฐ€์ง„ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์ƒ์„ฑ์ž๋ฅผ ์ด์šฉ
๐Ÿš€  ์ƒ์„ฑ์ž๋Š” ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ์ž๋™์œผ๋กœ ํ˜ธ์ถœ๋˜๋Š” ํŠน๋ณ„ํ•œ ๋ฉ”์†Œ๋“œ

 

    โšก๏ธ  ๋ชจ๋“  ํด๋ž˜์Šค๋Š” __init__() ์ด๋ผ๋Š” ์ด๋ฆ„์„ ๊ฐ€์ง„ ํ•จ์ˆ˜๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Œ
            โžก๏ธ  ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ ์ž๋™์œผ๋กœ ํ˜ธ์ถœ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜์˜ ์ดˆ๊ธฐํ™” ์šฉ๋„๋กœ ์‚ฌ์šฉ

class Candy:
    def __init__(self, shape, color):
        print('์‹คํ–‰์ด ๋ ๊นŒ?')
        self.shape = shape
        self.color = color

satang = Candy('circle', 'brown')
print(satang.color) 
# ์‹คํ–‰์ด ๋ ๊นŒ?
# brown

 


 

6. ์†Œ๋ฉธ์ž  destructor

๐Ÿš€  ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ ์ž๋™์œผ๋กœ ํ˜ธ์ถœ๋˜๋Š” ์ƒ์„ฑ์ž์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ธ์Šคํ„ด์Šค๊ฐ€ ์†Œ๋ฉธ๋  ๋•Œ ์ž๋™์œผ๋กœ ํ˜ธ์ถœ๋˜๋Š” ๋ฉ”์†Œ๋“œ
๐Ÿš€  ์†Œ๋ฉธ์ž๋Š” __del__()

class Sample:
    def __del__(self):
        print('์ธ์Šคํ„ด์Šค๊ฐ€ ์†Œ๋ฉธ๋ฉ๋‹ˆ๋‹ค')

sample = Sample()

del sample  # ์ธ์Šคํ„ด์Šค๊ฐ€ ์†Œ๋ฉธ๋ฉ๋‹ˆ๋‹ค


# ๋งค์ง ๋ฉ”์„œ๋“œ ์ƒ˜ํ”Œ
class Sample:
    def __int__(self):
        pass

    def __len__(self):
        return 6

    def __str__(self):
        return 'what?'

li = [1, 2, 3]
print(len(li))  # 3

sample = Sample()
print(len(sample))  # 6
print(sample)  # what?

 

7.  ๋ฉ”์†Œ๋“œ  method

๐Ÿš€  ํด๋ž˜์Šค๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ํ•จ์ˆ˜๋ฅผ ๋งํ•œ๋‹ค.

๐Ÿš€  ํŒŒ์ด์ฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” ๋ฉค๋ฒ„ ํ•จ์ˆ˜(member funcion) ํ˜น์€ ์ธ์Šคํ„ด์Šค ํ•จ์ˆ˜(instance function) ๋“ฑ์˜ ์šฉ์–ด๋ฅผ ๋” ๋งŽ์ด ์‚ฌ์šฉํ•จ

class ํด๋ž˜์Šค ์ด๋ฆ„:
    def ๋ฉ”์†Œ๋“œ ์ด๋ฆ„(self, ์ถ”๊ฐ€์ ์ธ ๋งค๊ฐœ๋ณ€์ˆ˜):
        pass

 

 

 

 

[ ๋‚ด์šฉ ์ฐธ๊ณ  : IT ํ•™์› ๊ฐ•์˜ ๋ฐ ์ฑ… 'ํ˜ผ์ž ๊ณต๋ถ€ํ•˜๋Š” ํŒŒ์ด์ฌ' ]

+ Recent posts