본문 바로가기
Language/Python

[python] Class와 __init__함수

by 카프리썬 2021. 9. 6.
728x90

Class() 클래스

객체(object)를 만들어내기 위한 틀?

클래스 없이 단순히 def(함수)로만 정의할수도 있지만,

함수가 많아지면 관리하기 힘들어지니까 비슷한 종류?카테고리?의 함수들끼리 class로 묶어서 정의하는걸 권장

#클래스 없이 함수로만 정의할 경우
def some_function(something): 
	print(something)
    
#클래스로 정의할 경우
class SomeClass:
	def __init__(self,something): 
		self.something = something 

	def some_function(self): 
		print(self.something)

 

__init__ 함수

클래스로 생성된 걸 보면 __init__ 이라는 내장함수가 필요하다.

인스턴스화를 할때 반드시 처음에 호출되는 함수로, 객체에 대한 초깃값을 설정해준다. 

 

항상 첫번째 인수로 self를 지정하고, self에는 인스턴스 자체가 전달된다고 보면 된다.

만약 파라미터를 받게 될 경우 별도의 인수를 생성하면 된다. 

 

인스턴스

클래스에 정의된 데이터나 함수를 사용하기 위해서 인스턴스를 생성해야한다.

하나의 클래스에 여러개의 인스턴스를 생성할 수 있고, 각 인스턴스가 다른 데이터를 가질 수도 있다.

 

이때 some_value라는 파라미터를 받아서 초기화를 진행하고, 그 값을 가지고 함수를 호출한다.

# 위의 클래스에서 some_value라는 파라미터를 받은 인스턴스를 생성하고
# some_function()함수를 호출한다. 

a = SomeClass("some_value")
a.some_function()
class MyStatus: 
	def __init__(self,age,name,height,weight):
      self.age = age 
      self.name = name 
      self.height = height 
      self.weight = weight
      
    def print_age(self): 
    	print(self.age)
        
    def print_name(self): 
    	print(self.name) 
      
    def print_height(self): 
    	print(self.height) 
      
    def print_weight(self): 
    	print(self.weight)

 

반응형

$(document).ready(function() { var $toc = $("#toc"); $toc.toc({content: ".tt_article_useless_p_margin", headings: "h2,h3,h4"}); });