Python

class 사용하기

낙타선생 2020. 9. 28. 11:00
반응형

class와 메서드  선언

class 클래스이름:
	#객체를 통해 사용할 수 있는 메서드
    def 메서드이름1(self):
    	실행코드
    
    #클래스를 통해 사용할 수 있는 메서드
    @staticmethod
    def 메서드이름2(매개변수1, 매개변수2 ...):
    	실행코드
    
    #만약 내용없는 class를 선언하고자 한다면 다른 내용 대신 pass를 입력
        
        

 

class의 속성 추가

# class 선언 시 속성 추가
class 클래스이름:
	속성이름8 = 값	# 클래스 속성. 이 클래스로 만들어진 모든 객체가 공유하는 속성이다.
    	__속성이름9 = 값	# __으로 시작하는 속성명은 java의 private 속성과 같다.
	__slot__=['속성이름5', '속성이름6']
      	"""
          객체를 생성할 때 자동으로 호출되는 __init__ 메서드는 Java의 생성자와 같이
          객체의 상태를 초기화 하는데 사용된다.

          앞, 뒤로 __가 붙은 메서드는 스페셜 메서드 또는 매직 메서드라고 부르며 
          파이썬에서 자동으로 호출해주는 메서드이다.

          self는 클래스로 생성한 객체를 의미한다.
    	"""
	def __init__(self, 매개변수1, 매개변수2):
    	self.속성이름1 = 값
        self.__속성이름2 = 값	# 속성이름 앞에 __를 붙이면 java의 private 키워드와 같다.
        self.속성이름3 = 매개변수1
        self.속성이름4 = 매개변수2
	

# 생성된 객체에 속성 추가
객체이름 = 클래스이름()
객체이름.속성이름5 = 값
객체이름.속성이름6 = 값

# __slot__ 이 선언되어 있기 때문에 __slot__ 안에 문자열 형태로 지정되지 않은 속성이름은 추가할 수 없다.
객체이름.속성이름7 = 값 

속성은 클래스 속성과 객체 속성이 있다. 클래스 속성이 java의 static 멤버와 동일한 개념이다. 즉 여러 객체에의 해 공유되는 멤버변수가 되겠다.

 

 

 

객체의 생성과 인스턴스 메서드 호출

객체이름 = 클래스이름()
객체이름.메서드이름()

 

 

객체의 class 확인

type(객체명)