Python
[파이썬] 객체 (객체생성, 생성자, 변수선언)
praybe
2022. 3. 17. 16:53
객체란 클래스
파이썬에서는 어떻게 만들까?
객체(속성을 가지고 다른 것과 식별 가능한 것)와 클래스(설계도: 필드+생성자+메서드)
객체생성
#클래스 하나에 함수 하나
class Human:
def hello(self):
return "안녕하세요"
#자바에서는 Human human = new Human();
#객체생성
human = Human() #우항은 생성자
human.hello()
출력값:
'안녕하세요'
함수에 self가 들어 가 있는데 이게 좀 생뚱맞아 보임
java에서 this란 자기자신 호출
self는 default로 넣어줘야 함. class에 들어있는 함수라는 것을 구분시켜주는 것
다만 hello()로 마지막에 호출할때 self 넣어주지 않는다.
생성자
class Human:
#자바 생성자는 클래스 이름과 같은 함수고 리턴타입이 없음
#생성자
def __init__(self):
print('__init__함수는 생성자')
human = Human()
출력값:
__init__함수는 생성자
생성자 함수: init
변수선언
class Human:
#클래스 내 변수선언
#생성자 안에 self.변수선언 하면 된다.
def __init__(self,finger):
self.finger = finger #이 부분이 핵심
print("변수선언", finger)
human = Human(7) #비로서 7이 finger의 파라미터로 받아짐
출력값:
변수선언 7
class Human:
def __init__(self,finger):
self.finger = finger
print("변수선언", finger)
def hello(self):
return self.finger
human = Human(7)
human.hello()
출력값:
변수선언 7
Out[56]:
7
static
class Human:
total_count=0 #이게 static . static이란 인스턴스 라면
def __init__(self,finger):
self.finger = finger
print("변수선언", finger)
Human.total_count += 1
human1 = Human(7)
human2 = Human(7)
human3 = Human(7)
human1.__class__.total_count
출력값:
변수선언 7
변수선언 7
변수선언 7
Out[62]:
3
인스턴스 변수는 self.finger로 생성하고
스태틱 변수는 위에 클래스 변수라는 이름으로 함수 바깥에 표현하고 확인하려면 객체명.class하면 된다