250x250
Link
๋‚˜์˜ GitHub Contribution ๊ทธ๋ž˜ํ”„
Loading data ...
Notice
Recent Posts
Recent Comments
๊ด€๋ฆฌ ๋ฉ”๋‰ด

Data Science LAB

[Python] self์™€ __init__ ๋ณธ๋ฌธ

๐Ÿ Python/๊ธฐ์ดˆ

[Python] self์™€ __init__

ใ…… ใ…œ ใ…” ใ…‡ 2022. 10. 1. 17:00
728x90

Class ๋Š” ํฌ๊ฒŒ ์†์„ฑ / ๋ฉ”์„œ๋“œ๋กœ ๊ตฌ์„ฑ

 

- ๋ฉ”์„œ๋“œ : ๊ธฐ๋Šฅ์„ ํ•˜๋Š” ํ•จ์ˆ˜

- ์†์„ฑ : ๋ฐ์ดํ„ฐ

Person์ด๋ผ๋Š” ํด๋ž˜์Šค๊ฐ€ ์žˆ์„ ๋•Œ, ์ด๋ฆ„, ๋‚˜์ด, ์ง์—… ๋“ฑ์˜ ์ •๋ณด๊ฐ€ ์†์„ฑ์ด๊ณ  ์ž๊ธฐ์†Œ๊ฐœ์™€ ๊ฐ™์€ ๊ธฐ๋Šฅ์ด ๋ฉ”์„œ๋“œ

์—ฌ๊ธฐ์„œ self๋Š” ์ž๊ธฐ ์ž์‹ , ์ฆ‰ ์ธ์Šคํ„ด์Šค๋ฅผ ์˜๋ฏธํ•œ๋‹ค. 

class Person():
    def __init__(self,name,age,job):
        self.name = name
        self.age = age
        self.job = job

 

 

 

Class ๊ตฌ์„ฑ ์‹œ ์žฅ์ 

- ๊ธ€๋กœ๋ฒŒ ๋ณ€์ˆ˜๋ฅผ ์—†์• ๊ณ , ๋ชจ๋“  ๋ณ€์ˆ˜๋ฅผ ์–ด๋– ํ•œ ์Šค์ฝ”ํ”„์— ์†Œ์†์‹œํ‚ด

- ๋ช‡ ๋ฒˆ์ด๊ณ  ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅ

- ์ฝ”๋“œ ์ˆ˜์ • ์ตœ์†Œํ™”

- ํ•จ์ˆ˜ ์‹คํ–‰ ์ค‘, ํ•จ์ˆ˜ ์ž์‹ ์„ ๋‹ค์‹œ ํ˜ธ์ถœํ•˜๋Š” ์ฒ˜๋ฆฌ ๋“ฑ์ด ๊ฐ€๋Šฅ

 

 

__init__

- ์ปจ์ŠคํŠธ๋Ÿญํ„ฐ๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ์ดˆ๊ธฐํ™”๋ฅผ ์œ„ํ•œ ํ•จ์ˆ˜(๋ฉ”์„œ๋“œ)

- ์ธ์Šคํ„ด์Šคํ™”๋ฅผ ์‹ค์‹œํ•  ๋•Œ ๋ฐ˜๋“œ์‹œ ์ฒ˜์Œ์— ํ˜ธ์ถœ๋˜๋Š” ํŠน์ˆ˜ํ•œ ํ•จ์ˆ˜

- ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ๊ณผ ๊ด€๋ จํ•ด ๋ฐ์ดํ„ฐ์˜ ์ดˆ๊ธฐ๋ฅผ ์‹ค์‹œํ•จ

- ์ฒซ ๋ฒˆ์งธ ์ธ์ˆ˜๋กœ ๋ฐ˜๋“œ์‹œ self ์ง€์ •ํ•ด์•ผํ•จ, self์—๋Š” ์ธ์Šคํ„ด์Šค ์ „์ฒด๊ฐ€ ์ „๋‹ฌ๋˜์–ด ์žˆ์Œ

 

class Person():
    def __init__(self,name,age,job):
        self.name = name
        self.age = age
        self.job = job
        
    def print_name(self):
        print(self.name)
        
j = Person('j', 20, 'student')
j.print_name()

# j

 

 

 

 

Class ๋ณ€์ˆ˜  vs  ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜ ์ฐจ์ด

  ํด๋ž˜์Šค ๋ณ€์ˆ˜ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜
๋ฌด์—‡ ์ธ๊ฐ€ ?  ํด๋ž˜์Šค ๋‚ด๋ถ€์— ์„ ์–ธ๋œ ๋ณ€์ˆ˜ self๊ฐ€ ๋ถ™์–ด ์žˆ๋Š” ๋ณ€์ˆ˜, ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ ์ƒ์„ฑ
๋ณ€์ˆ˜ ์œ„์น˜ class์˜ namespace ์ธ์Šคํ„ด์Šค์˜ namespace
์–ธ์ œ ์‚ฌ์šฉ ?  ์ธ์Šคํ„ด์Šค ๊ฐ„์— ์„œ๋กœ ๊ณต์œ ํ•ด์•ผ ํ•˜๋Š” ๊ฐ’,
ํด๋ž˜์Šค ๋ณ€์ˆ˜๋Š” ๋ชจ๋“  ์ธ์Šคํ„ด์Šค์— ๊ณต์œ ๋จ
์ธ์Šคํ„ด์Šค ๊ฐ„ ๊ณ ์œ ํ•œ ๊ฐ’,
๋‹ค๋ฅธ ์ธ์Šคํ„ด์Šค์— ๊ณต์œ ํ•˜๋ฉด ์•ˆ๋จ
class Person():
    class_num = 0
    def __init__(self,name,age,job):
        self.name = name
        self.age = age
        self.job = job

j = Person('j', 20, 'student')
j.class_num
#0

class_num์€ ํด๋ž˜์Šค ๋ณ€์ˆ˜

 

j.age
#20

age๋Š” ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜

 

 

728x90
Comments