Notice
Recent Posts
Recent Comments
Link
«   2026/01   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

행복한 개구리

Python 공부내용 21.10.08. Python - Classes / Objects 본문

Python/공부내용

Python 공부내용 21.10.08. Python - Classes / Objects

HappyFrog 2021. 10. 8. 14:28

W3Schools의 Python Tutorial을 보며 해석하고 정리한 글입니다.

오역이 존재할 수 있습니다

저도 파이썬은 처음이니 가볍게 봐주세요 :D 

W3Schools


파이썬 클래스 / 객체

파이썬은 객체지향 프로그래밍 언어(OOP - Object Oriented Programming language)입니다.

 

파이썬에서의 거의 모든 것은 그것의 프로퍼티(특성)과 메서드들과 함께 객체입니다.

 

클래스는 객체 제작자 또는 객체를 만드는 "설계도"입니다.

 

클래스 만들기

클래스를 만들기 위해서는  class  키워드를 사용하면 됩니다.

class MyClass:
    x = 5

▲ 클래스를 만들고 그것의 프로퍼티를 설정합니다.

 

객체 만들기

이제 MyClass 라는 클래스에서 객체를 만들어봅시다.

class MyClass:
    x = 5

p1 = MyClass()
print(p1.x)

▲ 결괏값 // p1.x는 p1객체의 프로퍼티중 x의 값을 불러오는 코드입니다.

 

__init__() 함수

위의 예시에서의 클래스와 객체는 가장 단순한 형태였으며 실무에서는 별 필요가 없는 형식입니다.

 

클래스의 의미를 이해하기 위해서는 우리는 빌트인 함수인 __init__()에 대해서 알아야합니다.

 

모든 클래스들은 __init__() 함수를 호출할 수 있으며 항상 클래스가 시작될 때 실행됩니다.

 

객체의 프로퍼티에 값을 할당하거나 객체가 생성될 때 다른 필요한 작업을 할 때 __init__() 함수를 사용하세요

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

p1 = Person("John", 36)

print(p1.name)
print(p1.age)

▲ 결괏값

 

주의 : __init()__ 함수는 클래스가 새로운 객체를 생성할 때 자동적으로 호출됩니다.

 

객체 메서드

객체들은 메서드를 포함할 수 있습니다. 객체안의 메서드들은 객체에 귀속되는 함수들입니다.

 

Person 클래스에서 메서드를 만들어봅시다.

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def myfunc(self):
        print("Hello my name is " + self.name)

p1 = Person("John", 36)
p1.myfunc()

▲ 결괏값

 

주의 self  라는 매개변수는 클래스의 현재 객체를 참조하며, 클래스에 귀속되는 변수들에 접근합니다.

 

self 매개변수

 self  라는 매개변수는 클래스의 현재 객체를 참조하며, 클래스에 귀속되는 변수들에 접근합니다.

 

이 매개변수의 이름은 굳이  self  가 아니어도 됩니다. 당신이 원하는 이름으로 지어도 상관 없지만 클래스안에서의 어느함수에서든 첫번째 매개변수가 되어야만 합니다.

class Person:
    def __init__(mysillyobject, name, age):
        mysillyobject.name = name
        mysillyobject.age = age

    def myfunc(abc):
        print("Hello my name is " + abc.name)

p1 = Person("John", 36)
p1.myfunc()

▲ 결괏값

 

객체 프로퍼티 수정하기

당신은 객체의 프로퍼티를 아래와 같이 수정할 수 있습니다.

class Person:
    def __init__(mysillyobject, name, age):
        mysillyobject.name = name
        mysillyobject.age = age

    def myfunc(abc):
        print(f'Age : {abc.age} // Hello my name is ' + abc.name)

p1 = Person("John", 36)
p1.myfunc()

p1.age = 40
p1.myfunc()

▲ 결괏값

 

객체 지우기

당신은  del  키워드를 사용하여 객체를 삭제할 수 있습니다.

class Person:
    def __init__(mysillyobject, name, age):
        mysillyobject.name = name
        mysillyobject.age = age

    def myfunc(abc):
        print(f'Age : {abc.age} // Hello my name is ' + abc.name)

p1 = Person("John", 36)
p1.myfunc()

p1.age = 40
p1.myfunc()

del p1
p1.myfunc()

▲ 결괏값

 

pass 문

 class  의 정의는 비어있을 수 없습니다. 하지만 당신이  class  의 정의를 내용이 없는 채로 두고 싶다면  pass  문을 사용하여 에러가 나는 것을 피하세요.

class Person:
    pass

▲ 결괏값 // 오류가 나지 않습니다.