본문 바로가기
programming/Python

파이썬 클래스 객체 변수 프로퍼티 추가하기 Adding Python class property

by 개코 - 개발과 코딩 2021. 11. 10.

파이썬 클래스를 다루는 것은 자유도가 높다. 클래스를 생성한 이후 클래스 변수인 프로퍼티를 추가하고 수정하고 삭제할 수 있다. 파이썬이 내부적으로 어떻게 돌아가는지는 느낌적으로 예상은 들지만 중요한 것은 사용법이다. 지금같이 하드웨어가 좋은 세상에 파이썬의 내부로직을 굳이 알 필요는 없을 것으로 본다. 나중에 천천히 알아가면 되는 것.

파이썬 클래스 객체 변수 프로퍼티 추가하기
Adding Python class property

다른 OOP 언어를 알고 파이썬을 접하면 신기함이 많다.

우선 데이터 처리의 관대함이 있다.

여간해선 데이터 타입이 틀려도 에러없이 처리가 가능하다.

물론, 이것 때문에 뜻하지 않는 잘못된 결과를 초래할 수도 있을 것이지만 말이다.

파이썬 클래스는 객체로 생성후에도 클래스 변수인 프로퍼티를 추가할 수 있다.

상당히 유연하고 자유도가 높다.

클래스 변수 프로퍼티 추가

이미 이전에 클래스 변수를 삭제하는 것을 봤다.

del 키워드를 사용하면 된다.

프로퍼티를 삭제할 수 있다는 것에 의문점이 생길 수 있다.

그렇다면 추가를 할 수 있지 않을까?

만약 프로퍼티명을 addProp 라고 가장하고 생성된 클래스에 이것을 추가하려면 일반적인 방법을 사용하면 된다.

print('----------')

#- 클래스부분
class pythonClass : #-{

    def __init__(this, prop) : #-{
        this.prop = prop
    #-}

#-}

pythonClass.addProp = "추가된 클래스변수"

print('----------')

샘플코드

위의 방법대로 실제로 추가해 보도록 하자.

위의 코드를 그대로 사용해 보려고 한다.

만약 객체화된 클래스에 프로퍼티를 추가할 수 있다면 데이터 가공을 지지고 볶고 굽고 삶는 것이 너무도 자연스럽고 자유로울 수 있다.

print('----------')

#- 클래스부분
class pythonClass : #-{

    def __init__(this, prop) : #-{
        this.prop = prop
    #-}

#-}

print('----------')

pyCls = pythonClass("파이썬 클래스")

pyCls.addProp = "추가된 클래스변수 2"
print(type(pyCls.addProp), pyCls.addProp)

pyCls.addProp = "수정된 클래스변수 2"
print(type(pyCls.addProp), pyCls.addProp)

del pyCls.addProp
print(type(pyCls.addProp), pyCls.addProp)

print('----------')

위의 코드가 잘못되었다고 생각될 수가 있다.

객체화된 클래스의 프로퍼티도 삭제할 수 있고 추가할 수도 있다.

결과화면을 보자.

어떻게 하든 클래스 변수인 클래스변수가 객체화된 이후에도 추가도 되고, 삭제도 된다.

신기할 따름이다.

어쨌든 클래스 사용에 대해서도 자유도가 높기 떄문에 사용법만 충분히 익혀면 무엇을 만들어도 재미있을 것이다.

 

반응형

댓글