class student: # 클래스
count = 0
@classmethod #클래스 메소드 , @classmethod 데코레이터 , 정적 메소드와 비슷 , 클래스에서 위에 선언한 클래스 변수 (=멤버변수) 사용 할 수 있음.
def cmethod(cls): # 매개변수의 첫번째 인자 -> 클래스 객체 받음 , cls 로 받음
print("클래스 메소드")
print(cls.count)
@staticmethod # 정적 메소드 , @staticmethod 데코레이터 , 클래스에서 위에 선언한 클래스 변수 (=멤버변수) 사용 못함.
def smethod():
print("정적 메소드")
student.cmethod() # 클래스 메소드 -> 메소드 밖에서 정의된 클래스 변수 사용함
student.smethod() # 정적 메소드 -> 메소드 밖에서 정의된 클래스 변수 사용못함
class human: # 클래스 생성
def __init__(self, height, age): # 생성자 __init__ : 해당 (클래스->)인스턴스 없어질 때 실행, 메서드(함수) 생성할 때, class-> self 가 첫번째 매개변수 인자 -> 변수 선언 시 self.~~ 형태로 만들어야 외부(메소드 밖) 사용 가능
self.height = height
self.age = age
def how_old(self):
print(self.age, "살 입니다")
def how_tall(self):
print(self.height, 'cm 입니다')
def __del__(self): # 소멸자 __del__ : 해당 (클래스->)인스턴스 없어질 때 실행
print('삭제되었다')
seunghyun = human(180,31) # 클래스를 통해 인스턴스 생성 , 생성자에서 (self, height, age) 가 매개변수이므로 self 는 무시, 나머지 heigh, age 값을 같이 넣어서 생성해줘야한다. => 생성자 실행
print(seunghyun.height) # 클래스->인스턴스-->~.변수 형태로 변수 접근
print(seunghyun.age)
seunghyun.how_old() # 메서드 접근 방법 ; 인스턴스.메서드()
del seunghyun # 인스턴스 삭제됨 => 클래스에서 정의된 소멸자 실행
# 위에서 del 로 인스턴스 삭제 -> 더이상 seunghyun 존재하지 않으므로 아래 와 같이 불러오면 에러남
print(seunghyun.height) # 클래스->인스턴스-->~.변수 형태로 변수 접근
print(seunghyun.age)
seunghyun.how_old() # 메서드 접근 방법 ; 인스턴스.메서드()
def plus(a,b): # 함수 정의
return a+b
type(plus) # type() 함수 -> 타입 알 수 있음
class human:
def __init__(self): # 생성자
self.__age = 31 # __변수 형태 : 은닉 => 해당 메소드에서만 접근 가능함
@property # 은닉된 변수 접근하기 위한 getter (가져오다) -> @property 데코레이터
def age_getter(self): #getter
return self.__age # 생성자에서 은닉됐지만 가져올 수 있다.
@age_getter.setter # getter 만 설정하는 데코레이터 존재 -> setter (은닉된 변수 건들기, 설정하다) 는 getter 메소드 이름. setter 로 데코레이터를 줘야한다.
def age_setter(self, value): #setter
self.__age = value # 은닉된 변수 조작하기.
seunghyun = human() # 클래스 -> 객체,인스턴스 생성
seunghyun.age_setter = 25252 # 은닉된 것 건들이기
seunghyun.age_getter # 은닉된 것 가져오기
seunghyun.__age # 그냥은 은닉된 __age 접근 못함 -> 따라서 에러 남
mypi = 3.14
# 원의 면적 반지름 * 반지름 * 3.14
def area(r):
return mypi * r * r
# 자체적으로 실행
if __name__ == "__main__": #실행하고 있는 코드 (.py) 의 파일 이름이 __main__ 이 된다.
print(round(area(12),2))
print(area(10))
* 필수 삽입 링크 : http://bit.ly/3Y34pE0
패스트캠퍼스 [직장인 실무교육]
프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.
fastcampus.co.kr
<사진 2장>
> 본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
'패스트캠퍼스_컴공전공필수+인공지능 > 0원 챌린지' 카테고리의 다른 글
3/05(일) 상속과 예외처리 실습(복습) (0) | 2023.03.05 |
---|---|
3/04(토) 파일 입/출력 2 (0) | 2023.03.04 |
3/02(목) 파일 입/출력 (0) | 2023.03.02 |
3/01(수) 상속과 예외처리 2 (0) | 2023.03.01 |
2/28(화) 상속과 예외처리 (0) | 2023.02.28 |