--- id: python-class-methods title: "Python Class Methods" category: "Programming_Language" status: "draft" verification_status: "conceptual" canonical_id: "" aliases: ["__str__() method", "파이썬 클래스 메서드"] duplicate_of: "" source_trust_level: "B" confidence_score: 0.9 created_at: 2026-07-04 updated_at: 2026-07-04 review_reason: "" merge_history: [] tags: ["python", "programming", "w3schools", "methods", "__str__"] raw_sources: ["https://www.w3schools.com/python/python_class_methods.asp"] applied_in: [] github_commit: "" --- # [[Python Class Methods]] # 참고: 원문 제목은 "Python Class Methods" ## 🎯 한 줄 통찰 (One-line insight) Without a `__str__()` method, `print(obj)` shows an unhelpful memory-address-style representation — defining `__str__()` lets a class control exactly what string represents it when printed. [S1] ## 🧠 핵심 개념 (Core concepts) - **Method** — a function that belongs to a class, defining object behavior; always needs `self` as first parameter. [S1] - **Methods with parameters** — work like regular function parameters, just after `self`. [S1] - **Methods accessing/modifying properties** — via `self.property`. [S1] - **`__str__()`** — controls what's returned when an object is printed; without it, printing shows a default unhelpful representation. [S1] - **Multiple methods** — a class can have many methods that call each other and share state (e.g. a Playlist with add/remove/show methods). [S1] - **Deleting a method** — `del ClassName.method` removes it; calling it afterward errors. [S1] ## 📖 세부 내용 (Details) - Basic method: `class Person: def __init__(self, name): self.name = name; def greet(self): print("Hello, my name is " + self.name)`. [S1] - Method with parameters: `class Calculator: def add(self, a, b): return a + b`. [S1] - Method modifying state: `def celebrate_birthday(self): self.age += 1`. [S1] - `__str__()` override: `def __str__(self): return f"{self.name} ({self.age})"` — `print(p1)` now shows this instead of the default. [S1] - Multi-method class: a `Playlist` class with `add_song`, `remove_song`, `show_songs` methods collaborating via shared `self.songs`. [S1] ## ⚖️ 모순 및 업데이트 (Contradictions & updates) 소스에서 모순되는 정보는 발견되지 않음. ## 🛠️ 적용 사례 (Applied in summary) 현재 발견된 실제 적용 사례가 없습니다 — `__str__()`은 디버깅/로깅 시 객체를 사람이 읽기 좋은 형태로 출력하는 표준 패턴이다. [S1] ## 💻 코드 패턴 (Code patterns) Custom __str__() for readable printing (Python): ```python class Person: def __init__(self, name, age): self.name = name self.age = age def __str__(self): return f"{self.name} ({self.age})" p1 = Person("Tobias", 36) print(p1) # Tobias (36) ``` ## ✅ 검증 상태 및 신뢰도 - **상태:** draft - **검증 단계:** conceptual - **출처 신뢰도:** B (W3Schools — widely used educational reference, not a primary standards body) - **신뢰 점수:** 0.90 - **중복 검사 결과:** 신규 생성 (New discovery) ## 🔗 지식 그래프 (Knowledge Graph) - **상위/루트:** [[Python Tutorial]] - **관련 개념:** [[Python Class Self Parameter]], [[Python Class Properties]], [[Python Polymorphism]] - **참조 맥락:** 클래스 동작 정의의 기본 — __str__()은 디버깅/로깅에 표준적으로 쓰인다. ## 📚 출처 (Sources) - [S1] W3Schools — Python Class Methods — https://www.w3schools.com/python/python_class_methods.asp ## 📝 변경 이력 (Change history) - 2026-07-04: Initial draft synthesized from the W3Schools "Python Class Methods" page (Astra wiki-curation, P-Reinforce v3.1 format).