728x90
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)
728x90
반응형
'🍃 Language > Python' 카테고리의 다른 글
python에 rusty를 섞는다?! 파이썬 segmentation fault 원인? (0) | 2021.12.03 |
---|---|
[python] Django에서 절대경로 __file__ 로 지정하기 (os.path) (2) | 2021.09.06 |
[Python] Dict로 문자열 count하기 | setDefault(i,0), get(i,0) (0) | 2021.07.12 |
[Python] 문자열 애너그램(Anagrams) | Counter(), DefaultDict() (0) | 2021.07.12 |
[Python] 커스텀한 기준으로 sort()하기 cmp_to_key() (0) | 2021.07.12 |
[python] 대문자로 변환하기 upper() / capitalize() / title() (0) | 2021.07.11 |