일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 티스토리챌린지
- wxmaxima
- 최단경로문제
- 2023채용박람회
- 데이터베이스시스템
- 정보처리기사공부방법
- 나르시스트
- 무소의뿔
- 이런 사람에게 "절대" 돈과 시간 쓰지 마세요. (이헌주 교수 3부)
- 배윤슬
- 등록금0원
- 아이엔이야기
- 오일러투어
- 그래프2
- kgol
- 합의정리
- 윤파고
- 숫타니파아타
- 다자녀장학금
- playground배열
- 허스켈그래프
- 집착형
- 직선의방정식
- 오블완
- 맥북에서 wxMaxima 설치
- 청년도배사 이야기
- 쌍대성원리
- wxMaxima install for mac os
- 제거된값 첨부하기
- 이분그래프
- Today
- Total
사적공간
클래스/ 메소드의 정의/ self 매개변수 / UML클래스/객체 인스턴스/객체멤버 접근 / str메소드 본문
*객체지향 패러다임의 특징
추상화: 공통의 속성이나 기능을 도출
캡슐화: 데이터 구조와 데이터의 연산을 결합
상속: 상속 개념의 특징이 하위 개념에 전달
다형성: 유사 객체의 사용성을 그대로 유지
<클래스 정의 구문>
class 클래스 이름:
초기자 정의
메소드 정의
메소드(method)
객체에 대한 행동(연산)을 정의
함수의 정의 . 및 사용 방법과 동일
<메소드 정의 구문>
class 클래스 이름:
def 메소드 이름[self, 매개변수 리스트]:
코드 블럭
self 매개변수
모든 메소드의 첫번째 매개변수
메소드의 구현에 사용되지만 메소드 호출시 사용되지 않음
객체 자신을 참조하여 클래스 정의에 포함된 멤버에 접근 시 사용
원뿔의 부피와 겉넓이 구하기 / self 매개변수/ UML 클래스 설계
self 매개변수
-모든 메소드의 첫 번째 매개변수
-메소드의 구현에 사용되지만 메소드 호출 시 사용되지 않음
-객체 자신을 참조하여 클래스 정의에 포함된 멤버 접근 시 사용 (원래라면 정의된 함수에 한정된 스코프 범위가 클래스 전체로 늘어남)
UML 클래스 다이어그램
데이터 필드, 생성자, 메소드 표현 방법 표준화
클래스 이름 |
데이터 필드 이름: 데이터 필드 타입 |
클래스 이름(매개변수 이름: 매개변수 타입) 메소드 이름(매개변수 이름: 매개변수 타입): 반환값 타입 |
Cone |
r: int h: int |
Cone(radius = 20: int, height = 30:int) get_vol( ):float get_surf( ): float |
class Cone:
def _init_(self, radius = 20, height = 30):
self.r = radius
self.h = height
def get_vol(self) :
return 1/3 * 3.14 * self.r ** 2 * self.h
def get_surf(self) :
return 3.14 * self.r ** 2 + 3.14 * self.r * self.h
# 원뿔 계산 함수 정의
def rtn_cone_vol_surf(r, h) :
if r > 0 and h > 0 :
# r, h 모두 양수일 때
vol = 1/3 * 3.14 * r ** 2 * h
suf = 3.14 * r ** 2 + 3.14 * r * h
return vol, surf
else :
# r, h가 음수일 때
print("반지름과 높이 값에 양수를 입력하세요")
BMI 지수 구하기 / UML 클래스 설계
클래스 이름 |
데이터 필드 이름: 데이터 필드 타입 |
클래스 이름(매개변수 이름: 매개변수 타입) 메소드 이름(매개변수 이름: 매개변수 타입): 반환값 타입 |
BMI |
name: str age: int weight: float height: float |
BMI(name: str, age: int, weight: float, height: float) get_BMI( ): float get_status( ): str |
BMI / 객체와 인스턴스 / 초기자
객체(인스턴스) 생성 구문형식
클래스 이름(초기 파라미터)
-클래스 생성자(constructor)를 통해 클래스의 인스턴스 생성
-객체와 인스턴스는 같은 개념
-클래스의 생성자는 클래스의 이름과 동일
-클래스의 이름과 초기자의 매개변수를 사용하여 생성자를 호출
초기자(initializer)
객체의 상태를 초기화하는 특수 메소드
항상 __init__으로 명명
person1 = BMI("홍길동", 40, 78, 182)
print(person1.name + "님(" + str(person1.age) + "세)의 BMI 수치는", person1.get_BMI(), "결과는", person1.get_status(), "입니다.")
홍길동님(40세)의 BMI 수치는 23.54788069073783 결과는 과체중 입니다.
객체 멤버 접근 연산자( . )
구문 형식
<객체 생성>
객체 참조변수 = 클래스 이름(초기자 파라미터)
<객체 접근>
객체 참조변수.데이터 필드
객체 참조변수.메소드(파라미터)
초기자(initializer)
-(1). 클래스에 해당하는 객체를 생성하고, (2). __init__( ) 로 객체를 호출
class BMI :
def __init__(self, name, age, weight, height) :
self.name = name;
self.age = age
self.weight = weight
self.height = height
def get_BMI(self) :
return self.weight / (self.height / 100) ** 2
def get_status(self) :
BMI = self.get_BMI()
if BMI >= 25 :
return "비만"
elif BMI >= 23 and BMI < 25 :
return "과체중"
elif BMI >= 18.5 and BMI < 23 :
return "정상"
else :
return "저체중"
메소드
print("I love python".upper()) ## 대문자로 변경
isymbol = "I love python".replace("o", "i") 있는 ## o를 i로 대체후 저장
print(isymbol)
dir(str) ## 사용 가능한 메소드 나열
결과
I LOVE PYTHON
I live pythin
['__add__',
'__class__',
'__contains__',
'__delattr__',
'__dir__',
'__doc__',
'__eq__',
'__format__',
'__ge__',
'__getattribute__',
'__getitem__',
'__getnewargs__',
'__gt__',
'__hash__',
'__init__',
'__init_subclass__',
'__iter__',
'__le__',
'__len__',
'__lt__',
'__mod__',
'__mul__',
'__ne__',
'__new__',
'__reduce__',
'__reduce_ex__',
'__repr__',
'__rmod__',
'__rmul__',
'__setattr__',
'__sizeof__',
'__str__',
'__subclasshook__',
'capitalize',
'casefold',
'center',
'count',
'encode',
'endswith',
'expandtabs',
'find',
'format',
'format_map',
'index',
'isalnum',
'isalpha',
'isascii',
'isdecimal',
'isdigit',
'isidentifier',
'islower',
'isnumeric',
'isprintable',
'isspace',
'istitle',
'isupper',
'join',
'ljust',
'lower',
'lstrip',
'maketrans',
'partition',
'removeprefix',
'removesuffix',
'replace',
'rfind',
'rindex',
'rjust',
'rpartition',
'rsplit',
'rstrip',
'split',
'splitlines',
'startswith',
'strip',
'swapcase',
'title',
'translate',
'upper',
'zfill']
'KNOU_CS > 파이썬' 카테고리의 다른 글
데이터 필드 감추기 (0) | 2024.03.28 |
---|---|
스코프 / 기본매개변수 / 가변매개변수 (0) | 2024.03.22 |
오름차순/ swap기능 /동시 할당(리턴) (0) | 2024.03.22 |
함수호출/ 반환 / format함수 (0) | 2024.03.22 |
숫자 역순 출력 (0) | 2024.03.22 |