Language

[Python] Method #1 : method, self

geum 2020. 9. 27. 12:01

더 이상 λ‚˜μ˜ 무지λ₯Ό λ°©μΉ˜ν•  수 μ—†μ–΄μ„œ μ •λ¦¬ν•΄λ³΄λŠ” 파이썬 메써-λ“œ

μ•„λ§ˆλ„ μ‹œλ¦¬μ¦ˆ λŠλ‚ŒμœΌλ‘œ 정리λ₯Ό ν•΄λ‚˜κ°ˆ 것 κ°™λ‹€.

첫 μ‹œμž‘μ€ method/μŽŒν”„μ˜ κ°œλ…

 

 

 

method

1️⃣ ν•¨μˆ˜μ™€ λΉ„μŠ·

2️⃣ ν΄λž˜μŠ€μ— λ¬Άμ—¬μ„œ 클래슀의 μΈμŠ€ν„΄μŠ€μ™€ κ΄€κ³„λ˜λŠ” 일을 μˆ˜ν–‰

3️⃣ κ²°λ‘  : 클래슀 μ•ˆμ— λ“€μ–΄μžˆλŠ” ν•¨μˆ˜

좜처 : 코딩도μž₯

 

ex)
step 1. class 생성

class Person:
    # method μž‘μ„±
    def greeting(self):    
        print('Hello')

step 2. instance 생성

bogeum = Person() # bogeum : Person의 instance

=> classλŠ” νŠΉμ • κ°œλ…μ„ ν‘œν˜„λ§Œ ν•˜κΈ° λ•Œλ¬Έμ— μ‚¬μš©ν•˜λ €λ©΄ instance 생성 ν•„μˆ˜

 

step 3. method 호좜

# instance.method() -> instance 톡해 ν˜ΈμΆœν•˜λŠ” methodλŠ” 'instance method'
bogeum.greeting()
Hello

 

self

# self λ§€κ°œλ³€μˆ˜ 유무 차이 -> 클래슀 μ •μ˜ error λ°œμƒ X, μ™œ?
class Selfcheck:
        def func1():
                print("function 1")
        def func2(self):
                print("function 2")

 

β€» func2 methodλŠ” μΈμžκ°€ self 밖에 μ—†μ–΄μ„œ μ‹€μ œ method 호좜 μ‹œμ—λŠ” 인자 전달할 ν•„μš” X
πŸ‘‰ self에 λŒ€ν•œ 값은 파이썬이 μžλ™μœΌλ‘œ λ„˜κ²¨μ€Œ

s = Selfcheck()
s.func2()
function 2

 

f.func1() error message

TypeError: func1() takes 0 positional arguments but 1 was given

πŸ‘‰ 파이썬 method 첫번째 인자둜 항상 μΈμŠ€ν„΄μŠ€(μ—¬κΈ°μ„œλŠ” f)κ°€ μ „λ‹¬λ˜κΈ° λ•Œλ¬Έμ— 문제 λ°œμƒ

 

 

⭐⭐ self 결둠 ⭐⭐

methodλ₯Ό ν˜ΈμΆœν•œ instanceκ°€ μžλ™μœΌλ‘œ 전달됨

 

s.func2() -> def func2(s) 둜 싀행됨

'Language' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[Python] μ˜ˆμ™Έ 처리  (0) 2021.08.19
[Python] 파일 읽기/μ“°κΈ°  (0) 2021.08.18
[Python] lambda  (0) 2021.02.09