Skip to content

Episohe/Type-Python

Repository files navigation

νƒ€μž… 파이썬! μ˜¬λ°”λ₯Έ class μ‚¬μš©λ²•κ³Ό 객체지ν–₯ ν”„λ‘œκ·Έλž˜λ° (μΈν”„λŸ° κ°•μ˜)

Object Oriented Programming (OOP)

데이터(data)λ₯Ό μΆ”μƒν™”μ‹œμΌœ μƒνƒœ(속성)와 ν–‰μœ„(methods)λ₯Ό 가진 객체(object)둜 λ§Œλ“€κ³  κ·Έ 객체듀 κ°„μ˜ 유기적인 μƒν˜Έμž‘μš©μ„ 톡해 둜직(흐름)을 κ΅¬μ„±ν•˜λŠ” ν”„λ‘œκ·Έλž˜λ° 방법

ν”„λ‘œκ·Έλž¨μ„ μ‹€μ œ 세상에 κ°€κΉκ²Œ λͺ¨λΈλ§ν•˜λŠ” 기법

class

μ–΄λ–€ 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•œ 데이터λ₯Ό λ§Œλ“€κΈ° μœ„ν•΄ OOP 원칙에 따라 집단(ν˜„μ‹€ 세계)에 μ†ν•˜λŠ” 속성과 ν–‰μœ„(methods)λ₯Ό λ³€μˆ˜μ™€ λ©”μ„œλ“œλ‘œ μ •μ˜ν•œ 것

"λ‘œλ΄‡ 섀계도"

instance (object)

classμ—μ„œ μ •μ˜ν•œ 것(섀계도)을 ν† λŒ€λ‘œ μ‹€μ œ λ©”λͺ¨λ¦¬μƒμ— ν• λ‹Ήλœ 것(μ‹€μ œ 사물, object)으둜 μ‹€μ œ ν”„λ‘œκ·Έλž¨μ—μ„œ μ‚¬μš©λ˜λŠ” 데이터이닀.

ν•˜λ‚˜μ˜ class둜 λ§Œλ“€μ–΄μ§„ μ—¬λŸ¬ instance(object)λŠ” 각각 독립적이닀.

"μ‹€μ œ λ‘œλ΄‡"

OOP 원칙

μΊ‘μŠν™” : encapsulation

객체(object)의 **속성과 ν–‰μœ„(methods)**λ₯Ό ν•˜λ‚˜λ‘œ λ¬Άκ³ , κ΅¬ν˜„λœ 일뢀λ₯Ό 외뢀에 감좔어 μ€λ‹‰ν•œλ‹€.

좔상화 : abstraction

λΆˆν•„μš”ν•œ μ •λ³΄λŠ” 숨기고 μ€‘μš”ν•œ(ν•„μš”ν•œ) μ •λ³΄λ§Œμ„ ν‘œν˜„ν•¨μœΌλ‘œμ¨ κ³΅ν†΅μ˜ μ†μ„±μ΄λ‚˜ ν–‰μœ„(methods)λ₯Ό ν•˜λ‚˜λ‘œ λ¬Άμ–΄ 이름을 λΆ™μ΄λŠ” 것이닀.

상속 : Inheritance

λΆ€λͺ¨ class의 속성과 ν–‰μœ„(methods)을 κ·ΈλŒ€λ‘œ 상속 λ°›κ³  ν–‰μœ„(methods)의 일뢀뢄을 μˆ˜μ •ν•΄μ•Ό ν•  경우 상속받은 μžμ‹ classμ—μ„œ ν•΄λ‹Ή ν–‰μœ„(methods)만 λ‹€μ‹œ μˆ˜μ •ν•˜μ—¬ μ‚¬μš©ν•  수 μžˆλ„λ‘ ν•œλ‹€. λ˜ν•œ μžμ‹ classμ—μ„œ μΆ”κ°€μ μœΌλ‘œ μ†μ„±μ΄λ‚˜ ν–‰μœ„(methods)λ₯Ό μ •μ˜ν•  수 있게 ν•œλ‹€.

λ‹€ν˜•μ„± : Polymorphism

μ—¬λŸ¬ ν˜•νƒœλ₯Ό κ°€μ§ˆ 수 μžˆλ„λ‘ ν•œλ‹€. 즉, 객체λ₯Ό λΆ€ν’ˆν™”ν•  수 μžˆλ„λ‘ ν•œλ‹€.

  • A 곡μž₯μ—μ„œ λ§Œλ“  타이어λ₯Ό YSS μžλ™μ°¨ νšŒμ‚¬μ—μ„œ μ‚¬μš©ν•  수 있고 YYR μžλ™μ°¨ νšŒμ‚¬μ—μ„œλ„ μ‚¬μš©ν•  수 μžˆλ‹€.
  • λ˜ν•œ, 이 νƒ€μ΄μ–΄λŠ” νƒ±ν¬μ˜ 타이어 κ°œλ°œμ— 재료둜 μ‚¬μš©λ  μˆ˜λ„ μžˆλ‹€.

About

Type hints & Type checking 🏷

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages